/*
* This file is part of `et engine`
* Copyright 2009-2013 by Sergey Reznik
* Please, do not modify content without approval.
*
*/

#include <et/platform-win/opengl.win.h>

#pragma comment (lib, "opengl32.lib")

// GL_VERSION_1_2
PFNGLBLENDCOLORPROC glBlendColor = NULL;
PFNGLBLENDEQUATIONPROC glBlendEquation = NULL;
PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements = NULL;
PFNGLTEXIMAGE3DPROC glTexImage3D = NULL;
PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D = NULL;
PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D = NULL;

// GL_VERSION_1_2_DEPRECATED
PFNGLCOLORTABLEPROC glColorTable = NULL;
PFNGLCOLORTABLEPARAMETERFVPROC glColorTableParameterfv = NULL;
PFNGLCOLORTABLEPARAMETERIVPROC glColorTableParameteriv = NULL;
PFNGLCOPYCOLORTABLEPROC glCopyColorTable = NULL;
PFNGLGETCOLORTABLEPROC glGetColorTable = NULL;
PFNGLGETCOLORTABLEPARAMETERFVPROC glGetColorTableParameterfv = NULL;
PFNGLGETCOLORTABLEPARAMETERIVPROC glGetColorTableParameteriv = NULL;
PFNGLCOLORSUBTABLEPROC glColorSubTable = NULL;
PFNGLCOPYCOLORSUBTABLEPROC glCopyColorSubTable = NULL;
PFNGLCONVOLUTIONFILTER1DPROC glConvolutionFilter1D = NULL;
PFNGLCONVOLUTIONFILTER2DPROC glConvolutionFilter2D = NULL;
PFNGLCONVOLUTIONPARAMETERFPROC glConvolutionParameterf = NULL;
PFNGLCONVOLUTIONPARAMETERFVPROC glConvolutionParameterfv = NULL;
PFNGLCONVOLUTIONPARAMETERIPROC glConvolutionParameteri = NULL;
PFNGLCONVOLUTIONPARAMETERIVPROC glConvolutionParameteriv = NULL;
PFNGLCOPYCONVOLUTIONFILTER1DPROC glCopyConvolutionFilter1D = NULL;
PFNGLCOPYCONVOLUTIONFILTER2DPROC glCopyConvolutionFilter2D = NULL;
PFNGLGETCONVOLUTIONFILTERPROC glGetConvolutionFilter = NULL;
PFNGLGETCONVOLUTIONPARAMETERFVPROC glGetConvolutionParameterfv = NULL;
PFNGLGETCONVOLUTIONPARAMETERIVPROC glGetConvolutionParameteriv = NULL;
PFNGLGETSEPARABLEFILTERPROC glGetSeparableFilter = NULL;
PFNGLSEPARABLEFILTER2DPROC glSeparableFilter2D = NULL;
PFNGLGETHISTOGRAMPROC glGetHistogram = NULL;
PFNGLGETHISTOGRAMPARAMETERFVPROC glGetHistogramParameterfv = NULL;
PFNGLGETHISTOGRAMPARAMETERIVPROC glGetHistogramParameteriv = NULL;
PFNGLGETMINMAXPROC glGetMinmax = NULL;
PFNGLGETMINMAXPARAMETERFVPROC glGetMinmaxParameterfv = NULL;
PFNGLGETMINMAXPARAMETERIVPROC glGetMinmaxParameteriv = NULL;
PFNGLHISTOGRAMPROC glHistogram = NULL;
PFNGLMINMAXPROC glMinmax = NULL;
PFNGLRESETHISTOGRAMPROC glResetHistogram = NULL;
PFNGLRESETMINMAXPROC glResetMinmax = NULL;

// GL_VERSION_1_3
PFNGLACTIVETEXTUREPROC glActiveTexture = NULL;
PFNGLSAMPLECOVERAGEPROC glSampleCoverage = NULL;
PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D = NULL;
PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D = NULL;
PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D = NULL;
PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage = NULL;

// GL_VERSION_1_3_DEPRECATED
PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture = NULL;
PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d = NULL;
PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv = NULL;
PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f = NULL;
PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv = NULL;
PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i = NULL;
PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv = NULL;
PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s = NULL;
PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv = NULL;
PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d = NULL;
PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv = NULL;
PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f = NULL;
PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv = NULL;
PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i = NULL;
PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv = NULL;
PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s = NULL;
PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv = NULL;
PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d = NULL;
PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv = NULL;
PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f = NULL;
PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv = NULL;
PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i = NULL;
PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv = NULL;
PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s = NULL;
PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv = NULL;
PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d = NULL;
PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv = NULL;
PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f = NULL;
PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv = NULL;
PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i = NULL;
PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv = NULL;
PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s = NULL;
PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv = NULL;
PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf = NULL;
PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd = NULL;
PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf = NULL;
PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd = NULL;

// GL_VERSION_1_4
PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate = NULL;
PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays = NULL;
PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements = NULL;
PFNGLPOINTPARAMETERFPROC glPointParameterf = NULL;
PFNGLPOINTPARAMETERFVPROC glPointParameterfv = NULL;
PFNGLPOINTPARAMETERIPROC glPointParameteri = NULL;
PFNGLPOINTPARAMETERIVPROC glPointParameteriv = NULL;

// GL_VERSION_1_4_DEPRECATED
PFNGLFOGCOORDFPROC glFogCoordf = NULL;
PFNGLFOGCOORDFVPROC glFogCoordfv = NULL;
PFNGLFOGCOORDDPROC glFogCoordd = NULL;
PFNGLFOGCOORDDVPROC glFogCoorddv = NULL;
PFNGLFOGCOORDPOINTERPROC glFogCoordPointer = NULL;
PFNGLSECONDARYCOLOR3BPROC glSecondaryColor3b = NULL;
PFNGLSECONDARYCOLOR3BVPROC glSecondaryColor3bv = NULL;
PFNGLSECONDARYCOLOR3DPROC glSecondaryColor3d = NULL;
PFNGLSECONDARYCOLOR3DVPROC glSecondaryColor3dv = NULL;
PFNGLSECONDARYCOLOR3FPROC glSecondaryColor3f = NULL;
PFNGLSECONDARYCOLOR3FVPROC glSecondaryColor3fv = NULL;
PFNGLSECONDARYCOLOR3IPROC glSecondaryColor3i = NULL;
PFNGLSECONDARYCOLOR3IVPROC glSecondaryColor3iv = NULL;
PFNGLSECONDARYCOLOR3SPROC glSecondaryColor3s = NULL;
PFNGLSECONDARYCOLOR3SVPROC glSecondaryColor3sv = NULL;
PFNGLSECONDARYCOLOR3UBPROC glSecondaryColor3ub = NULL;
PFNGLSECONDARYCOLOR3UBVPROC glSecondaryColor3ubv = NULL;
PFNGLSECONDARYCOLOR3UIPROC glSecondaryColor3ui = NULL;
PFNGLSECONDARYCOLOR3UIVPROC glSecondaryColor3uiv = NULL;
PFNGLSECONDARYCOLOR3USPROC glSecondaryColor3us = NULL;
PFNGLSECONDARYCOLOR3USVPROC glSecondaryColor3usv = NULL;
PFNGLSECONDARYCOLORPOINTERPROC glSecondaryColorPointer = NULL;
PFNGLWINDOWPOS2DPROC glWindowPos2d = NULL;
PFNGLWINDOWPOS2DVPROC glWindowPos2dv = NULL;
PFNGLWINDOWPOS2FPROC glWindowPos2f = NULL;
PFNGLWINDOWPOS2FVPROC glWindowPos2fv = NULL;
PFNGLWINDOWPOS2IPROC glWindowPos2i = NULL;
PFNGLWINDOWPOS2IVPROC glWindowPos2iv = NULL;
PFNGLWINDOWPOS2SPROC glWindowPos2s = NULL;
PFNGLWINDOWPOS2SVPROC glWindowPos2sv = NULL;
PFNGLWINDOWPOS3DPROC glWindowPos3d = NULL;
PFNGLWINDOWPOS3DVPROC glWindowPos3dv = NULL;
PFNGLWINDOWPOS3FPROC glWindowPos3f = NULL;
PFNGLWINDOWPOS3FVPROC glWindowPos3fv = NULL;
PFNGLWINDOWPOS3IPROC glWindowPos3i = NULL;
PFNGLWINDOWPOS3IVPROC glWindowPos3iv = NULL;
PFNGLWINDOWPOS3SPROC glWindowPos3s = NULL;
PFNGLWINDOWPOS3SVPROC glWindowPos3sv = NULL;

// GL_VERSION_1_5
PFNGLGENQUERIESPROC glGenQueries = NULL;
PFNGLDELETEQUERIESPROC glDeleteQueries = NULL;
PFNGLISQUERYPROC glIsQuery = NULL;
PFNGLBEGINQUERYPROC glBeginQuery = NULL;
PFNGLENDQUERYPROC glEndQuery = NULL;
PFNGLGETQUERYIVPROC glGetQueryiv = NULL;
PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv = NULL;
PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv = NULL;
PFNGLBINDBUFFERPROC glBindBuffer = NULL;
PFNGLDELETEBUFFERSPROC glDeleteBuffers = NULL;
PFNGLGENBUFFERSPROC glGenBuffers = NULL;
PFNGLISBUFFERPROC glIsBuffer = NULL;
PFNGLBUFFERDATAPROC glBufferData = NULL;
PFNGLBUFFERSUBDATAPROC glBufferSubData = NULL;
PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData = NULL;
PFNGLMAPBUFFERPROC glMapBuffer = NULL;
PFNGLUNMAPBUFFERPROC glUnmapBuffer = NULL;
PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv = NULL;
PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv = NULL;

// GL_VERSION_2_0
PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate = NULL;
PFNGLDRAWBUFFERSPROC glDrawBuffers = NULL;
PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate = NULL;
PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate = NULL;
PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate = NULL;
PFNGLATTACHSHADERPROC glAttachShader = NULL;
PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation = NULL;
PFNGLCOMPILESHADERPROC glCompileShader = NULL;
PFNGLCREATEPROGRAMPROC glCreateProgram = NULL;
PFNGLCREATESHADERPROC glCreateShader = NULL;
PFNGLDELETEPROGRAMPROC glDeleteProgram = NULL;
PFNGLDELETESHADERPROC glDeleteShader = NULL;
PFNGLDETACHSHADERPROC glDetachShader = NULL;
PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray = NULL;
PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray = NULL;
PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib = NULL;
PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform = NULL;
PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders = NULL;
PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation = NULL;
PFNGLGETPROGRAMIVPROC glGetProgramiv = NULL;
PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog = NULL;
PFNGLGETSHADERIVPROC glGetShaderiv = NULL;
PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog = NULL;
PFNGLGETSHADERSOURCEPROC glGetShaderSource = NULL;
PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation = NULL;
PFNGLGETUNIFORMFVPROC glGetUniformfv = NULL;
PFNGLGETUNIFORMIVPROC glGetUniformiv = NULL;
PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv = NULL;
PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv = NULL;
PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv = NULL;
PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv = NULL;
PFNGLISPROGRAMPROC glIsProgram = NULL;
PFNGLISSHADERPROC glIsShader = NULL;
PFNGLLINKPROGRAMPROC glLinkProgram = NULL;
PFNGLSHADERSOURCEPROC glShaderSource = NULL;
PFNGLUSEPROGRAMPROC glUseProgram = NULL;
PFNGLUNIFORM1FPROC glUniform1f = NULL;
PFNGLUNIFORM2FPROC glUniform2f = NULL;
PFNGLUNIFORM3FPROC glUniform3f = NULL;
PFNGLUNIFORM4FPROC glUniform4f = NULL;
PFNGLUNIFORM1IPROC glUniform1i = NULL;
PFNGLUNIFORM2IPROC glUniform2i = NULL;
PFNGLUNIFORM3IPROC glUniform3i = NULL;
PFNGLUNIFORM4IPROC glUniform4i = NULL;
PFNGLUNIFORM1FVPROC glUniform1fv = NULL;
PFNGLUNIFORM2FVPROC glUniform2fv = NULL;
PFNGLUNIFORM3FVPROC glUniform3fv = NULL;
PFNGLUNIFORM4FVPROC glUniform4fv = NULL;
PFNGLUNIFORM1IVPROC glUniform1iv = NULL;
PFNGLUNIFORM2IVPROC glUniform2iv = NULL;
PFNGLUNIFORM3IVPROC glUniform3iv = NULL;
PFNGLUNIFORM4IVPROC glUniform4iv = NULL;
PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv = NULL;
PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv = NULL;
PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv = NULL;
PFNGLVALIDATEPROGRAMPROC glValidateProgram = NULL;
PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d = NULL;
PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv = NULL;
PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f = NULL;
PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv = NULL;
PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s = NULL;
PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv = NULL;
PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d = NULL;
PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv = NULL;
PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f = NULL;
PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv = NULL;
PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s = NULL;
PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv = NULL;
PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d = NULL;
PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv = NULL;
PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f = NULL;
PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv = NULL;
PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s = NULL;
PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv = NULL;
PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv = NULL;
PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv = NULL;
PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv = NULL;
PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub = NULL;
PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv = NULL;
PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv = NULL;
PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv = NULL;
PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv = NULL;
PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d = NULL;
PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv = NULL;
PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f = NULL;
PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv = NULL;
PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv = NULL;
PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s = NULL;
PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv = NULL;
PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv = NULL;
PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv = NULL;
PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv = NULL;
PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer = NULL;

// GL_VERSION_2_1
PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv = NULL;
PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv = NULL;
PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv = NULL;
PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv = NULL;
PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv = NULL;
PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv = NULL;

// GL_VERSION_3_0
PFNGLCOLORMASKIPROC glColorMaski = NULL;
PFNGLGETBOOLEANI_VPROC glGetBooleani_v = NULL;
PFNGLGETINTEGERI_VPROC glGetIntegeri_v = NULL;
PFNGLENABLEIPROC glEnablei = NULL;
PFNGLDISABLEIPROC glDisablei = NULL;
PFNGLISENABLEDIPROC glIsEnabledi = NULL;
PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback = NULL;
PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback = NULL;
PFNGLBINDBUFFERRANGEPROC glBindBufferRange = NULL;
PFNGLBINDBUFFERBASEPROC glBindBufferBase = NULL;
PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying = NULL;
PFNGLCLAMPCOLORPROC glClampColor = NULL;
PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender = NULL;
PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender = NULL;
PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer = NULL;
PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv = NULL;
PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv = NULL;
PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i = NULL;
PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i = NULL;
PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i = NULL;
PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i = NULL;
PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui = NULL;
PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui = NULL;
PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui = NULL;
PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui = NULL;
PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv = NULL;
PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv = NULL;
PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv = NULL;
PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv = NULL;
PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv = NULL;
PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv = NULL;
PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv = NULL;
PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv = NULL;
PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv = NULL;
PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv = NULL;
PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv = NULL;
PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv = NULL;
PFNGLGETUNIFORMUIVPROC glGetUniformuiv = NULL;
PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation = NULL;
PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation = NULL;
PFNGLUNIFORM1UIPROC glUniform1ui = NULL;
PFNGLUNIFORM2UIPROC glUniform2ui = NULL;
PFNGLUNIFORM3UIPROC glUniform3ui = NULL;
PFNGLUNIFORM4UIPROC glUniform4ui = NULL;
PFNGLUNIFORM1UIVPROC glUniform1uiv = NULL;
PFNGLUNIFORM2UIVPROC glUniform2uiv = NULL;
PFNGLUNIFORM3UIVPROC glUniform3uiv = NULL;
PFNGLUNIFORM4UIVPROC glUniform4uiv = NULL;
PFNGLTEXPARAMETERIIVPROC glTexParameterIiv = NULL;
PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv = NULL;
PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv = NULL;
PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv = NULL;
PFNGLCLEARBUFFERIVPROC glClearBufferiv = NULL;
PFNGLCLEARBUFFERUIVPROC glClearBufferuiv = NULL;
PFNGLCLEARBUFFERFVPROC glClearBufferfv = NULL;
PFNGLCLEARBUFFERFIPROC glClearBufferfi = NULL;
PFNGLGETSTRINGIPROC glGetStringi = NULL;

// GL_VERSION_3_1
PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced = NULL;
PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced = NULL;
PFNGLTEXBUFFERPROC glTexBuffer = NULL;
PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex = NULL;

// GL_VERSION_3_2
PFNGLGETINTEGER64I_VPROC glGetInteger64i_v = NULL;
PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v = NULL;
PFNGLPROGRAMPARAMETERIPROC glProgramParameteri = NULL;
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture = NULL;
PFNGLFRAMEBUFFERTEXTUREFACEPROC glFramebufferTextureFace = NULL;

// GL_ARB_multitexture
PFNGLACTIVETEXTUREARBPROC glActiveTextureARB = NULL;
PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB = NULL;
PFNGLMULTITEXCOORD1DARBPROC glMultiTexCoord1dARB = NULL;
PFNGLMULTITEXCOORD1DVARBPROC glMultiTexCoord1dvARB = NULL;
PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1fARB = NULL;
PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fvARB = NULL;
PFNGLMULTITEXCOORD1IARBPROC glMultiTexCoord1iARB = NULL;
PFNGLMULTITEXCOORD1IVARBPROC glMultiTexCoord1ivARB = NULL;
PFNGLMULTITEXCOORD1SARBPROC glMultiTexCoord1sARB = NULL;
PFNGLMULTITEXCOORD1SVARBPROC glMultiTexCoord1svARB = NULL;
PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2dARB = NULL;
PFNGLMULTITEXCOORD2DVARBPROC glMultiTexCoord2dvARB = NULL;
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB = NULL;
PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB = NULL;
PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB = NULL;
PFNGLMULTITEXCOORD2IVARBPROC glMultiTexCoord2ivARB = NULL;
PFNGLMULTITEXCOORD2SARBPROC glMultiTexCoord2sARB = NULL;
PFNGLMULTITEXCOORD2SVARBPROC glMultiTexCoord2svARB = NULL;
PFNGLMULTITEXCOORD3DARBPROC glMultiTexCoord3dARB = NULL;
PFNGLMULTITEXCOORD3DVARBPROC glMultiTexCoord3dvARB = NULL;
PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB = NULL;
PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB = NULL;
PFNGLMULTITEXCOORD3IARBPROC glMultiTexCoord3iARB = NULL;
PFNGLMULTITEXCOORD3IVARBPROC glMultiTexCoord3ivARB = NULL;
PFNGLMULTITEXCOORD3SARBPROC glMultiTexCoord3sARB = NULL;
PFNGLMULTITEXCOORD3SVARBPROC glMultiTexCoord3svARB = NULL;
PFNGLMULTITEXCOORD4DARBPROC glMultiTexCoord4dARB = NULL;
PFNGLMULTITEXCOORD4DVARBPROC glMultiTexCoord4dvARB = NULL;
PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB = NULL;
PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB = NULL;
PFNGLMULTITEXCOORD4IARBPROC glMultiTexCoord4iARB = NULL;
PFNGLMULTITEXCOORD4IVARBPROC glMultiTexCoord4ivARB = NULL;
PFNGLMULTITEXCOORD4SARBPROC glMultiTexCoord4sARB = NULL;
PFNGLMULTITEXCOORD4SVARBPROC glMultiTexCoord4svARB = NULL;

// GL_ARB_transpose_matrix
PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrixfARB = NULL;
PFNGLLOADTRANSPOSEMATRIXDARBPROC glLoadTransposeMatrixdARB = NULL;
PFNGLMULTTRANSPOSEMATRIXFARBPROC glMultTransposeMatrixfARB = NULL;
PFNGLMULTTRANSPOSEMATRIXDARBPROC glMultTransposeMatrixdARB = NULL;

// GL_ARB_multisample
PFNGLSAMPLECOVERAGEARBPROC glSampleCoverageARB = NULL;

// GL_ARB_texture_compression
PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB = NULL;
PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB = NULL;
PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB = NULL;
PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB = NULL;
PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB = NULL;

// GL_ARB_point_parameters
PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB = NULL;
PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB = NULL;

// GL_ARB_vertex_blend
PFNGLWEIGHTBVARBPROC glWeightbvARB = NULL;
PFNGLWEIGHTSVARBPROC glWeightsvARB = NULL;
PFNGLWEIGHTIVARBPROC glWeightivARB = NULL;
PFNGLWEIGHTFVARBPROC glWeightfvARB = NULL;
PFNGLWEIGHTDVARBPROC glWeightdvARB = NULL;
PFNGLWEIGHTUBVARBPROC glWeightubvARB = NULL;
PFNGLWEIGHTUSVARBPROC glWeightusvARB = NULL;
PFNGLWEIGHTUIVARBPROC glWeightuivARB = NULL;
PFNGLWEIGHTPOINTERARBPROC glWeightPointerARB = NULL;
PFNGLVERTEXBLENDARBPROC glVertexBlendARB = NULL;

// GL_ARB_matrix_palette
PFNGLCURRENTPALETTEMATRIXARBPROC glCurrentPaletteMatrixARB = NULL;
PFNGLMATRIXINDEXUBVARBPROC glMatrixIndexubvARB = NULL;
PFNGLMATRIXINDEXUSVARBPROC glMatrixIndexusvARB = NULL;
PFNGLMATRIXINDEXUIVARBPROC glMatrixIndexuivARB = NULL;
PFNGLMATRIXINDEXPOINTERARBPROC glMatrixIndexPointerARB = NULL;

// GL_ARB_window_pos
PFNGLWINDOWPOS2DARBPROC glWindowPos2dARB = NULL;
PFNGLWINDOWPOS2DVARBPROC glWindowPos2dvARB = NULL;
PFNGLWINDOWPOS2FARBPROC glWindowPos2fARB = NULL;
PFNGLWINDOWPOS2FVARBPROC glWindowPos2fvARB = NULL;
PFNGLWINDOWPOS2IARBPROC glWindowPos2iARB = NULL;
PFNGLWINDOWPOS2IVARBPROC glWindowPos2ivARB = NULL;
PFNGLWINDOWPOS2SARBPROC glWindowPos2sARB = NULL;
PFNGLWINDOWPOS2SVARBPROC glWindowPos2svARB = NULL;
PFNGLWINDOWPOS3DARBPROC glWindowPos3dARB = NULL;
PFNGLWINDOWPOS3DVARBPROC glWindowPos3dvARB = NULL;
PFNGLWINDOWPOS3FARBPROC glWindowPos3fARB = NULL;
PFNGLWINDOWPOS3FVARBPROC glWindowPos3fvARB = NULL;
PFNGLWINDOWPOS3IARBPROC glWindowPos3iARB = NULL;
PFNGLWINDOWPOS3IVARBPROC glWindowPos3ivARB = NULL;
PFNGLWINDOWPOS3SARBPROC glWindowPos3sARB = NULL;
PFNGLWINDOWPOS3SVARBPROC glWindowPos3svARB = NULL;

// GL_ARB_vertex_program
PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB = NULL;
PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB = NULL;
PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB = NULL;
PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB = NULL;
PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB = NULL;
PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB = NULL;
PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB = NULL;
PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB = NULL;
PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB = NULL;
PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB = NULL;
PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB = NULL;
PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB = NULL;
PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB = NULL;
PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB = NULL;
PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB = NULL;
PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB = NULL;
PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB = NULL;
PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB = NULL;
PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB = NULL;
PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB = NULL;
PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB = NULL;
PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB = NULL;
PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB = NULL;
PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB = NULL;
PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB = NULL;
PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB = NULL;
PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB = NULL;
PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB = NULL;
PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB = NULL;
PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB = NULL;
PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB = NULL;
PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB = NULL;
PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB = NULL;
PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB = NULL;
PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB = NULL;
PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB = NULL;
PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB = NULL;
PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB = NULL;
PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB = NULL;
PFNGLPROGRAMSTRINGARBPROC glProgramStringARB = NULL;
PFNGLBINDPROGRAMARBPROC glBindProgramARB = NULL;
PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB = NULL;
PFNGLGENPROGRAMSARBPROC glGenProgramsARB = NULL;
PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB = NULL;
PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB = NULL;
PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB = NULL;
PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB = NULL;
PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB = NULL;
PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB = NULL;
PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB = NULL;
PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB = NULL;
PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB = NULL;
PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB = NULL;
PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB = NULL;
PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB = NULL;
PFNGLGETPROGRAMIVARBPROC glGetProgramivARB = NULL;
PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB = NULL;
PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB = NULL;
PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB = NULL;
PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB = NULL;
PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB = NULL;
PFNGLISPROGRAMARBPROC glIsProgramARB = NULL;

// GL_ARB_vertex_buffer_object
PFNGLBINDBUFFERARBPROC glBindBufferARB = NULL;
PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB = NULL;
PFNGLGENBUFFERSARBPROC glGenBuffersARB = NULL;
PFNGLISBUFFERARBPROC glIsBufferARB = NULL;
PFNGLBUFFERDATAARBPROC glBufferDataARB = NULL;
PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB = NULL;
PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB = NULL;
PFNGLMAPBUFFERARBPROC glMapBufferARB = NULL;
PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB = NULL;
PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB = NULL;
PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB = NULL;

// GL_ARB_occlusion_query
PFNGLGENQUERIESARBPROC glGenQueriesARB = NULL;
PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB = NULL;
PFNGLISQUERYARBPROC glIsQueryARB = NULL;
PFNGLBEGINQUERYARBPROC glBeginQueryARB = NULL;
PFNGLENDQUERYARBPROC glEndQueryARB = NULL;
PFNGLGETQUERYIVARBPROC glGetQueryivARB = NULL;
PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB = NULL;
PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB = NULL;

// GL_ARB_shader_objects
PFNGLDELETEOBJECTARBPROC glDeleteObjectARB = NULL;
PFNGLGETHANDLEARBPROC glGetHandleARB = NULL;
PFNGLDETACHOBJECTARBPROC glDetachObjectARB = NULL;
PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB = NULL;
PFNGLSHADERSOURCEARBPROC glShaderSourceARB = NULL;
PFNGLCOMPILESHADERARBPROC glCompileShaderARB = NULL;
PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB = NULL;
PFNGLATTACHOBJECTARBPROC glAttachObjectARB = NULL;
PFNGLLINKPROGRAMARBPROC glLinkProgramARB = NULL;
PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB = NULL;
PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB = NULL;
PFNGLUNIFORM1FARBPROC glUniform1fARB = NULL;
PFNGLUNIFORM2FARBPROC glUniform2fARB = NULL;
PFNGLUNIFORM3FARBPROC glUniform3fARB = NULL;
PFNGLUNIFORM4FARBPROC glUniform4fARB = NULL;
PFNGLUNIFORM1IARBPROC glUniform1iARB = NULL;
PFNGLUNIFORM2IARBPROC glUniform2iARB = NULL;
PFNGLUNIFORM3IARBPROC glUniform3iARB = NULL;
PFNGLUNIFORM4IARBPROC glUniform4iARB = NULL;
PFNGLUNIFORM1FVARBPROC glUniform1fvARB = NULL;
PFNGLUNIFORM2FVARBPROC glUniform2fvARB = NULL;
PFNGLUNIFORM3FVARBPROC glUniform3fvARB = NULL;
PFNGLUNIFORM4FVARBPROC glUniform4fvARB = NULL;
PFNGLUNIFORM1IVARBPROC glUniform1ivARB = NULL;
PFNGLUNIFORM2IVARBPROC glUniform2ivARB = NULL;
PFNGLUNIFORM3IVARBPROC glUniform3ivARB = NULL;
PFNGLUNIFORM4IVARBPROC glUniform4ivARB = NULL;
PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB = NULL;
PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB = NULL;
PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB = NULL;
PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB = NULL;
PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB = NULL;
PFNGLGETINFOLOGARBPROC glGetInfoLogARB = NULL;
PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB = NULL;
PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB = NULL;
PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB = NULL;
PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB = NULL;
PFNGLGETUNIFORMIVARBPROC glGetUniformivARB = NULL;
PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB = NULL;

// GL_ARB_vertex_shader
PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB = NULL;
PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB = NULL;
PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB = NULL;

// GL_ARB_draw_buffers
PFNGLDRAWBUFFERSARBPROC glDrawBuffersARB = NULL;

// GL_ARB_color_buffer_float
PFNGLCLAMPCOLORARBPROC glClampColorARB = NULL;

// GL_ARB_draw_instanced
PFNGLDRAWARRAYSINSTANCEDARBPROC glDrawArraysInstancedARB = NULL;
PFNGLDRAWELEMENTSINSTANCEDARBPROC glDrawElementsInstancedARB = NULL;

// GL_ARB_framebuffer_object
PFNGLISRENDERBUFFERPROC glIsRenderbuffer = NULL;
PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer = NULL;
PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers = NULL;
PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers = NULL;
PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage = NULL;
PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv = NULL;
PFNGLISFRAMEBUFFERPROC glIsFramebuffer = NULL;
PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer = NULL;
PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers = NULL;
PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers = NULL;
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus = NULL;
PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D = NULL;
PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D = NULL;
PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D = NULL;
PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer = NULL;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv = NULL;
PFNGLGENERATEMIPMAPPROC glGenerateMipmap = NULL;
PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer = NULL;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample = NULL;
PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer = NULL;

// GL_ARB_geometry_shader4
PFNGLPROGRAMPARAMETERIARBPROC glProgramParameteriARB = NULL;
PFNGLFRAMEBUFFERTEXTUREARBPROC glFramebufferTextureARB = NULL;
PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glFramebufferTextureLayerARB = NULL;
PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glFramebufferTextureFaceARB = NULL;

// GL_ARB_instanced_arrays
PFNGLVERTEXATTRIBDIVISORARBPROC glVertexAttribDivisorARB = NULL;

// GL_ARB_map_buffer_range
PFNGLMAPBUFFERRANGEPROC glMapBufferRange = NULL;
PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange = NULL;

// GL_ARB_texture_buffer_object
PFNGLTEXBUFFERARBPROC glTexBufferARB = NULL;

// GL_ARB_vertex_array_object
PFNGLBINDVERTEXARRAYPROC glBindVertexArray = NULL;
PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays = NULL;
PFNGLGENVERTEXARRAYSPROC glGenVertexArrays = NULL;
PFNGLISVERTEXARRAYPROC glIsVertexArray = NULL;

// GL_ARB_uniform_buffer_object
PFNGLGETUNIFORMINDICESPROC glGetUniformIndices = NULL;
PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv = NULL;
PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName = NULL;
PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex = NULL;
PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv = NULL;
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName = NULL;
PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding = NULL;

// GL_ARB_copy_buffer
PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData = NULL;

// GL_ARB_draw_elements_base_vertex
PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex = NULL;
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex = NULL;
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex = NULL;
PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex = NULL;

// GL_ARB_provoking_vertex
PFNGLPROVOKINGVERTEXPROC glProvokingVertex = NULL;

// GL_ARB_sync
PFNGLFENCESYNCPROC glFenceSync = NULL;
PFNGLISSYNCPROC glIsSync = NULL;
PFNGLDELETESYNCPROC glDeleteSync = NULL;
PFNGLCLIENTWAITSYNCPROC glClientWaitSync = NULL;
PFNGLWAITSYNCPROC glWaitSync = NULL;
PFNGLGETINTEGER64VPROC glGetInteger64v = NULL;
PFNGLGETSYNCIVPROC glGetSynciv = NULL;

// GL_ARB_texture_multisample
PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample = NULL;
PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample = NULL;
PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv = NULL;
PFNGLSAMPLEMASKIPROC glSampleMaski = NULL;

// GL_ARB_draw_buffers_blend
PFNGLBLENDEQUATIONIPROC glBlendEquationi = NULL;
PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei = NULL;
PFNGLBLENDFUNCIPROC glBlendFunci = NULL;
PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei = NULL;

// GL_ARB_sample_shading
PFNGLMINSAMPLESHADINGPROC glMinSampleShading = NULL;

// GL_EXT_blend_color
PFNGLBLENDCOLOREXTPROC glBlendColorEXT = NULL;

// GL_EXT_polygon_offset
PFNGLPOLYGONOFFSETEXTPROC glPolygonOffsetEXT = NULL;

// GL_EXT_texture3D
PFNGLTEXIMAGE3DEXTPROC glTexImage3DEXT = NULL;
PFNGLTEXSUBIMAGE3DEXTPROC glTexSubImage3DEXT = NULL;

// GL_SGIS_texture_filter4
PFNGLGETTEXFILTERFUNCSGISPROC glGetTexFilterFuncSGIS = NULL;
PFNGLTEXFILTERFUNCSGISPROC glTexFilterFuncSGIS = NULL;

// GL_EXT_subtexture
PFNGLTEXSUBIMAGE1DEXTPROC glTexSubImage1DEXT = NULL;
PFNGLTEXSUBIMAGE2DEXTPROC glTexSubImage2DEXT = NULL;

// GL_EXT_copy_texture
PFNGLCOPYTEXIMAGE1DEXTPROC glCopyTexImage1DEXT = NULL;
PFNGLCOPYTEXIMAGE2DEXTPROC glCopyTexImage2DEXT = NULL;
PFNGLCOPYTEXSUBIMAGE1DEXTPROC glCopyTexSubImage1DEXT = NULL;
PFNGLCOPYTEXSUBIMAGE2DEXTPROC glCopyTexSubImage2DEXT = NULL;
PFNGLCOPYTEXSUBIMAGE3DEXTPROC glCopyTexSubImage3DEXT = NULL;

// GL_EXT_histogram
PFNGLGETHISTOGRAMEXTPROC glGetHistogramEXT = NULL;
PFNGLGETHISTOGRAMPARAMETERFVEXTPROC glGetHistogramParameterfvEXT = NULL;
PFNGLGETHISTOGRAMPARAMETERIVEXTPROC glGetHistogramParameterivEXT = NULL;
PFNGLGETMINMAXEXTPROC glGetMinmaxEXT = NULL;
PFNGLGETMINMAXPARAMETERFVEXTPROC glGetMinmaxParameterfvEXT = NULL;
PFNGLGETMINMAXPARAMETERIVEXTPROC glGetMinmaxParameterivEXT = NULL;
PFNGLHISTOGRAMEXTPROC glHistogramEXT = NULL;
PFNGLMINMAXEXTPROC glMinmaxEXT = NULL;
PFNGLRESETHISTOGRAMEXTPROC glResetHistogramEXT = NULL;
PFNGLRESETMINMAXEXTPROC glResetMinmaxEXT = NULL;

// GL_EXT_convolution
PFNGLCONVOLUTIONFILTER1DEXTPROC glConvolutionFilter1DEXT = NULL;
PFNGLCONVOLUTIONFILTER2DEXTPROC glConvolutionFilter2DEXT = NULL;
PFNGLCONVOLUTIONPARAMETERFEXTPROC glConvolutionParameterfEXT = NULL;
PFNGLCONVOLUTIONPARAMETERFVEXTPROC glConvolutionParameterfvEXT = NULL;
PFNGLCONVOLUTIONPARAMETERIEXTPROC glConvolutionParameteriEXT = NULL;
PFNGLCONVOLUTIONPARAMETERIVEXTPROC glConvolutionParameterivEXT = NULL;
PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC glCopyConvolutionFilter1DEXT = NULL;
PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC glCopyConvolutionFilter2DEXT = NULL;
PFNGLGETCONVOLUTIONFILTEREXTPROC glGetConvolutionFilterEXT = NULL;
PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC glGetConvolutionParameterfvEXT = NULL;
PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC glGetConvolutionParameterivEXT = NULL;
PFNGLGETSEPARABLEFILTEREXTPROC glGetSeparableFilterEXT = NULL;
PFNGLSEPARABLEFILTER2DEXTPROC glSeparableFilter2DEXT = NULL;

// GL_SGI_color_table
PFNGLCOLORTABLESGIPROC glColorTableSGI = NULL;
PFNGLCOLORTABLEPARAMETERFVSGIPROC glColorTableParameterfvSGI = NULL;
PFNGLCOLORTABLEPARAMETERIVSGIPROC glColorTableParameterivSGI = NULL;
PFNGLCOPYCOLORTABLESGIPROC glCopyColorTableSGI = NULL;
PFNGLGETCOLORTABLESGIPROC glGetColorTableSGI = NULL;
PFNGLGETCOLORTABLEPARAMETERFVSGIPROC glGetColorTableParameterfvSGI = NULL;
PFNGLGETCOLORTABLEPARAMETERIVSGIPROC glGetColorTableParameterivSGI = NULL;

// GL_SGIX_pixel_texture
PFNGLPIXELTEXGENSGIXPROC glPixelTexGenSGIX = NULL;

// GL_SGIS_pixel_texture
PFNGLPIXELTEXGENPARAMETERISGISPROC glPixelTexGenParameteriSGIS = NULL;
PFNGLPIXELTEXGENPARAMETERIVSGISPROC glPixelTexGenParameterivSGIS = NULL;
PFNGLPIXELTEXGENPARAMETERFSGISPROC glPixelTexGenParameterfSGIS = NULL;
PFNGLPIXELTEXGENPARAMETERFVSGISPROC glPixelTexGenParameterfvSGIS = NULL;
PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC glGetPixelTexGenParameterivSGIS = NULL;
PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC glGetPixelTexGenParameterfvSGIS = NULL;

// GL_SGIS_texture4D
PFNGLTEXIMAGE4DSGISPROC glTexImage4DSGIS = NULL;
PFNGLTEXSUBIMAGE4DSGISPROC glTexSubImage4DSGIS = NULL;

// GL_EXT_texture_object
PFNGLARETEXTURESRESIDENTEXTPROC glAreTexturesResidentEXT = NULL;
PFNGLBINDTEXTUREEXTPROC glBindTextureEXT = NULL;
PFNGLDELETETEXTURESEXTPROC glDeleteTexturesEXT = NULL;
PFNGLGENTEXTURESEXTPROC glGenTexturesEXT = NULL;
PFNGLISTEXTUREEXTPROC glIsTextureEXT = NULL;
PFNGLPRIORITIZETEXTURESEXTPROC glPrioritizeTexturesEXT = NULL;

// GL_SGIS_detail_texture
PFNGLDETAILTEXFUNCSGISPROC glDetailTexFuncSGIS = NULL;
PFNGLGETDETAILTEXFUNCSGISPROC glGetDetailTexFuncSGIS = NULL;

// GL_SGIS_sharpen_texture
PFNGLSHARPENTEXFUNCSGISPROC glSharpenTexFuncSGIS = NULL;
PFNGLGETSHARPENTEXFUNCSGISPROC glGetSharpenTexFuncSGIS = NULL;

// GL_SGIS_multisample
PFNGLSAMPLEMASKSGISPROC glSampleMaskSGIS = NULL;
PFNGLSAMPLEPATTERNSGISPROC glSamplePatternSGIS = NULL;

// GL_EXT_vertex_array
PFNGLARRAYELEMENTEXTPROC glArrayElementEXT = NULL;
PFNGLCOLORPOINTEREXTPROC glColorPointerEXT = NULL;
PFNGLDRAWARRAYSEXTPROC glDrawArraysEXT = NULL;
PFNGLEDGEFLAGPOINTEREXTPROC glEdgeFlagPointerEXT = NULL;
PFNGLGETPOINTERVEXTPROC glGetPointervEXT = NULL;
PFNGLINDEXPOINTEREXTPROC glIndexPointerEXT = NULL;
PFNGLNORMALPOINTEREXTPROC glNormalPointerEXT = NULL;
PFNGLTEXCOORDPOINTEREXTPROC glTexCoordPointerEXT = NULL;
PFNGLVERTEXPOINTEREXTPROC glVertexPointerEXT = NULL;

// GL_EXT_blend_minmax
PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT = NULL;

// GL_SGIX_sprite
PFNGLSPRITEPARAMETERFSGIXPROC glSpriteParameterfSGIX = NULL;
PFNGLSPRITEPARAMETERFVSGIXPROC glSpriteParameterfvSGIX = NULL;
PFNGLSPRITEPARAMETERISGIXPROC glSpriteParameteriSGIX = NULL;
PFNGLSPRITEPARAMETERIVSGIXPROC glSpriteParameterivSGIX = NULL;

// GL_EXT_point_parameters
PFNGLPOINTPARAMETERFEXTPROC glPointParameterfEXT = NULL;
PFNGLPOINTPARAMETERFVEXTPROC glPointParameterfvEXT = NULL;

// GL_SGIS_point_parameters
PFNGLPOINTPARAMETERFSGISPROC glPointParameterfSGIS = NULL;
PFNGLPOINTPARAMETERFVSGISPROC glPointParameterfvSGIS = NULL;

// GL_SGIX_instruments
PFNGLGETINSTRUMENTSSGIXPROC glGetInstrumentsSGIX = NULL;
PFNGLINSTRUMENTSBUFFERSGIXPROC glInstrumentsBufferSGIX = NULL;
PFNGLPOLLINSTRUMENTSSGIXPROC glPollInstrumentsSGIX = NULL;
PFNGLREADINSTRUMENTSSGIXPROC glReadInstrumentsSGIX = NULL;
PFNGLSTARTINSTRUMENTSSGIXPROC glStartInstrumentsSGIX = NULL;
PFNGLSTOPINSTRUMENTSSGIXPROC glStopInstrumentsSGIX = NULL;

// GL_SGIX_framezoom
PFNGLFRAMEZOOMSGIXPROC glFrameZoomSGIX = NULL;

// GL_SGIX_tag_sample_buffer
PFNGLTAGSAMPLEBUFFERSGIXPROC glTagSampleBufferSGIX = NULL;

// GL_SGIX_polynomial_ffd
PFNGLDEFORMATIONMAP3DSGIXPROC glDeformationMap3dSGIX = NULL;
PFNGLDEFORMATIONMAP3FSGIXPROC glDeformationMap3fSGIX = NULL;
PFNGLDEFORMSGIXPROC glDeformSGIX = NULL;
PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC glLoadIdentityDeformationMapSGIX = NULL;

// GL_SGIX_reference_plane
PFNGLREFERENCEPLANESGIXPROC glReferencePlaneSGIX = NULL;

// GL_SGIX_flush_raster
PFNGLFLUSHRASTERSGIXPROC glFlushRasterSGIX = NULL;

// GL_SGIS_fog_function
PFNGLFOGFUNCSGISPROC glFogFuncSGIS = NULL;
PFNGLGETFOGFUNCSGISPROC glGetFogFuncSGIS = NULL;

// GL_HP_image_transform
PFNGLIMAGETRANSFORMPARAMETERIHPPROC glImageTransformParameteriHP = NULL;
PFNGLIMAGETRANSFORMPARAMETERFHPPROC glImageTransformParameterfHP = NULL;
PFNGLIMAGETRANSFORMPARAMETERIVHPPROC glImageTransformParameterivHP = NULL;
PFNGLIMAGETRANSFORMPARAMETERFVHPPROC glImageTransformParameterfvHP = NULL;
PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC glGetImageTransformParameterivHP = NULL;
PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC glGetImageTransformParameterfvHP = NULL;

// GL_EXT_color_subtable
PFNGLCOLORSUBTABLEEXTPROC glColorSubTableEXT = NULL;
PFNGLCOPYCOLORSUBTABLEEXTPROC glCopyColorSubTableEXT = NULL;

// GL_PGI_misc_hints
PFNGLHINTPGIPROC glHintPGI = NULL;

// GL_EXT_paletted_texture
PFNGLCOLORTABLEEXTPROC glColorTableEXT = NULL;
PFNGLGETCOLORTABLEEXTPROC glGetColorTableEXT = NULL;
PFNGLGETCOLORTABLEPARAMETERIVEXTPROC glGetColorTableParameterivEXT = NULL;
PFNGLGETCOLORTABLEPARAMETERFVEXTPROC glGetColorTableParameterfvEXT = NULL;

// GL_SGIX_list_priority
PFNGLGETLISTPARAMETERFVSGIXPROC glGetListParameterfvSGIX = NULL;
PFNGLGETLISTPARAMETERIVSGIXPROC glGetListParameterivSGIX = NULL;
PFNGLLISTPARAMETERFSGIXPROC glListParameterfSGIX = NULL;
PFNGLLISTPARAMETERFVSGIXPROC glListParameterfvSGIX = NULL;
PFNGLLISTPARAMETERISGIXPROC glListParameteriSGIX = NULL;
PFNGLLISTPARAMETERIVSGIXPROC glListParameterivSGIX = NULL;

// GL_EXT_index_material
PFNGLINDEXMATERIALEXTPROC glIndexMaterialEXT = NULL;

// GL_EXT_index_func
PFNGLINDEXFUNCEXTPROC glIndexFuncEXT = NULL;

// GL_EXT_compiled_vertex_array
PFNGLLOCKARRAYSEXTPROC glLockArraysEXT = NULL;
PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXT = NULL;

// GL_EXT_cull_vertex
PFNGLCULLPARAMETERDVEXTPROC glCullParameterdvEXT = NULL;
PFNGLCULLPARAMETERFVEXTPROC glCullParameterfvEXT = NULL;

// GL_SGIX_fragment_lighting
PFNGLFRAGMENTCOLORMATERIALSGIXPROC glFragmentColorMaterialSGIX = NULL;
PFNGLFRAGMENTLIGHTFSGIXPROC glFragmentLightfSGIX = NULL;
PFNGLFRAGMENTLIGHTFVSGIXPROC glFragmentLightfvSGIX = NULL;
PFNGLFRAGMENTLIGHTISGIXPROC glFragmentLightiSGIX = NULL;
PFNGLFRAGMENTLIGHTIVSGIXPROC glFragmentLightivSGIX = NULL;
PFNGLFRAGMENTLIGHTMODELFSGIXPROC glFragmentLightModelfSGIX = NULL;
PFNGLFRAGMENTLIGHTMODELFVSGIXPROC glFragmentLightModelfvSGIX = NULL;
PFNGLFRAGMENTLIGHTMODELISGIXPROC glFragmentLightModeliSGIX = NULL;
PFNGLFRAGMENTLIGHTMODELIVSGIXPROC glFragmentLightModelivSGIX = NULL;
PFNGLFRAGMENTMATERIALFSGIXPROC glFragmentMaterialfSGIX = NULL;
PFNGLFRAGMENTMATERIALFVSGIXPROC glFragmentMaterialfvSGIX = NULL;
PFNGLFRAGMENTMATERIALISGIXPROC glFragmentMaterialiSGIX = NULL;
PFNGLFRAGMENTMATERIALIVSGIXPROC glFragmentMaterialivSGIX = NULL;
PFNGLGETFRAGMENTLIGHTFVSGIXPROC glGetFragmentLightfvSGIX = NULL;
PFNGLGETFRAGMENTLIGHTIVSGIXPROC glGetFragmentLightivSGIX = NULL;
PFNGLGETFRAGMENTMATERIALFVSGIXPROC glGetFragmentMaterialfvSGIX = NULL;
PFNGLGETFRAGMENTMATERIALIVSGIXPROC glGetFragmentMaterialivSGIX = NULL;
PFNGLLIGHTENVISGIXPROC glLightEnviSGIX = NULL;

// GL_EXT_draw_range_elements
PFNGLDRAWRANGEELEMENTSEXTPROC glDrawRangeElementsEXT = NULL;

// GL_EXT_light_texture
PFNGLAPPLYTEXTUREEXTPROC glApplyTextureEXT = NULL;
PFNGLTEXTURELIGHTEXTPROC glTextureLightEXT = NULL;
PFNGLTEXTUREMATERIALEXTPROC glTextureMaterialEXT = NULL;

// GL_SGIX_async
PFNGLASYNCMARKERSGIXPROC glAsyncMarkerSGIX = NULL;
PFNGLFINISHASYNCSGIXPROC glFinishAsyncSGIX = NULL;
PFNGLPOLLASYNCSGIXPROC glPollAsyncSGIX = NULL;
PFNGLGENASYNCMARKERSSGIXPROC glGenAsyncMarkersSGIX = NULL;
PFNGLDELETEASYNCMARKERSSGIXPROC glDeleteAsyncMarkersSGIX = NULL;
PFNGLISASYNCMARKERSGIXPROC glIsAsyncMarkerSGIX = NULL;

// GL_INTEL_parallel_arrays
PFNGLVERTEXPOINTERVINTELPROC glVertexPointervINTEL = NULL;
PFNGLNORMALPOINTERVINTELPROC glNormalPointervINTEL = NULL;
PFNGLCOLORPOINTERVINTELPROC glColorPointervINTEL = NULL;
PFNGLTEXCOORDPOINTERVINTELPROC glTexCoordPointervINTEL = NULL;

// GL_EXT_pixel_transform
PFNGLPIXELTRANSFORMPARAMETERIEXTPROC glPixelTransformParameteriEXT = NULL;
PFNGLPIXELTRANSFORMPARAMETERFEXTPROC glPixelTransformParameterfEXT = NULL;
PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC glPixelTransformParameterivEXT = NULL;
PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC glPixelTransformParameterfvEXT = NULL;

// GL_EXT_secondary_color
PFNGLSECONDARYCOLOR3BEXTPROC glSecondaryColor3bEXT = NULL;
PFNGLSECONDARYCOLOR3BVEXTPROC glSecondaryColor3bvEXT = NULL;
PFNGLSECONDARYCOLOR3DEXTPROC glSecondaryColor3dEXT = NULL;
PFNGLSECONDARYCOLOR3DVEXTPROC glSecondaryColor3dvEXT = NULL;
PFNGLSECONDARYCOLOR3FEXTPROC glSecondaryColor3fEXT = NULL;
PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXT = NULL;
PFNGLSECONDARYCOLOR3IEXTPROC glSecondaryColor3iEXT = NULL;
PFNGLSECONDARYCOLOR3IVEXTPROC glSecondaryColor3ivEXT = NULL;
PFNGLSECONDARYCOLOR3SEXTPROC glSecondaryColor3sEXT = NULL;
PFNGLSECONDARYCOLOR3SVEXTPROC glSecondaryColor3svEXT = NULL;
PFNGLSECONDARYCOLOR3UBEXTPROC glSecondaryColor3ubEXT = NULL;
PFNGLSECONDARYCOLOR3UBVEXTPROC glSecondaryColor3ubvEXT = NULL;
PFNGLSECONDARYCOLOR3UIEXTPROC glSecondaryColor3uiEXT = NULL;
PFNGLSECONDARYCOLOR3UIVEXTPROC glSecondaryColor3uivEXT = NULL;
PFNGLSECONDARYCOLOR3USEXTPROC glSecondaryColor3usEXT = NULL;
PFNGLSECONDARYCOLOR3USVEXTPROC glSecondaryColor3usvEXT = NULL;
PFNGLSECONDARYCOLORPOINTEREXTPROC glSecondaryColorPointerEXT = NULL;

// GL_EXT_texture_perturb_normal
PFNGLTEXTURENORMALEXTPROC glTextureNormalEXT = NULL;

// GL_EXT_multi_draw_arrays
PFNGLMULTIDRAWARRAYSEXTPROC glMultiDrawArraysEXT = NULL;
PFNGLMULTIDRAWELEMENTSEXTPROC glMultiDrawElementsEXT = NULL;

// GL_EXT_fog_coord
PFNGLFOGCOORDFEXTPROC glFogCoordfEXT = NULL;
PFNGLFOGCOORDFVEXTPROC glFogCoordfvEXT = NULL;
PFNGLFOGCOORDDEXTPROC glFogCoorddEXT = NULL;
PFNGLFOGCOORDDVEXTPROC glFogCoorddvEXT = NULL;
PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXT = NULL;

// GL_EXT_coordinate_frame
PFNGLTANGENT3BEXTPROC glTangent3bEXT = NULL;
PFNGLTANGENT3BVEXTPROC glTangent3bvEXT = NULL;
PFNGLTANGENT3DEXTPROC glTangent3dEXT = NULL;
PFNGLTANGENT3DVEXTPROC glTangent3dvEXT = NULL;
PFNGLTANGENT3FEXTPROC glTangent3fEXT = NULL;
PFNGLTANGENT3FVEXTPROC glTangent3fvEXT = NULL;
PFNGLTANGENT3IEXTPROC glTangent3iEXT = NULL;
PFNGLTANGENT3IVEXTPROC glTangent3ivEXT = NULL;
PFNGLTANGENT3SEXTPROC glTangent3sEXT = NULL;
PFNGLTANGENT3SVEXTPROC glTangent3svEXT = NULL;
PFNGLBINORMAL3BEXTPROC glBinormal3bEXT = NULL;
PFNGLBINORMAL3BVEXTPROC glBinormal3bvEXT = NULL;
PFNGLBINORMAL3DEXTPROC glBinormal3dEXT = NULL;
PFNGLBINORMAL3DVEXTPROC glBinormal3dvEXT = NULL;
PFNGLBINORMAL3FEXTPROC glBinormal3fEXT = NULL;
PFNGLBINORMAL3FVEXTPROC glBinormal3fvEXT = NULL;
PFNGLBINORMAL3IEXTPROC glBinormal3iEXT = NULL;
PFNGLBINORMAL3IVEXTPROC glBinormal3ivEXT = NULL;
PFNGLBINORMAL3SEXTPROC glBinormal3sEXT = NULL;
PFNGLBINORMAL3SVEXTPROC glBinormal3svEXT = NULL;
PFNGLTANGENTPOINTEREXTPROC glTangentPointerEXT = NULL;
PFNGLBINORMALPOINTEREXTPROC glBinormalPointerEXT = NULL;

// GL_SUNX_constant_data
PFNGLFINISHTEXTURESUNXPROC glFinishTextureSUNX = NULL;

// GL_SUN_global_alpha
PFNGLGLOBALALPHAFACTORBSUNPROC glGlobalAlphaFactorbSUN = NULL;
PFNGLGLOBALALPHAFACTORSSUNPROC glGlobalAlphaFactorsSUN = NULL;
PFNGLGLOBALALPHAFACTORISUNPROC glGlobalAlphaFactoriSUN = NULL;
PFNGLGLOBALALPHAFACTORFSUNPROC glGlobalAlphaFactorfSUN = NULL;
PFNGLGLOBALALPHAFACTORDSUNPROC glGlobalAlphaFactordSUN = NULL;
PFNGLGLOBALALPHAFACTORUBSUNPROC glGlobalAlphaFactorubSUN = NULL;
PFNGLGLOBALALPHAFACTORUSSUNPROC glGlobalAlphaFactorusSUN = NULL;
PFNGLGLOBALALPHAFACTORUISUNPROC glGlobalAlphaFactoruiSUN = NULL;

// GL_SUN_triangle_list
PFNGLREPLACEMENTCODEUISUNPROC glReplacementCodeuiSUN = NULL;
PFNGLREPLACEMENTCODEUSSUNPROC glReplacementCodeusSUN = NULL;
PFNGLREPLACEMENTCODEUBSUNPROC glReplacementCodeubSUN = NULL;
PFNGLREPLACEMENTCODEUIVSUNPROC glReplacementCodeuivSUN = NULL;
PFNGLREPLACEMENTCODEUSVSUNPROC glReplacementCodeusvSUN = NULL;
PFNGLREPLACEMENTCODEUBVSUNPROC glReplacementCodeubvSUN = NULL;
PFNGLREPLACEMENTCODEPOINTERSUNPROC glReplacementCodePointerSUN = NULL;

// GL_SUN_vertex
PFNGLCOLOR4UBVERTEX2FSUNPROC glColor4ubVertex2fSUN = NULL;
PFNGLCOLOR4UBVERTEX2FVSUNPROC glColor4ubVertex2fvSUN = NULL;
PFNGLCOLOR4UBVERTEX3FSUNPROC glColor4ubVertex3fSUN = NULL;
PFNGLCOLOR4UBVERTEX3FVSUNPROC glColor4ubVertex3fvSUN = NULL;
PFNGLCOLOR3FVERTEX3FSUNPROC glColor3fVertex3fSUN = NULL;
PFNGLCOLOR3FVERTEX3FVSUNPROC glColor3fVertex3fvSUN = NULL;
PFNGLNORMAL3FVERTEX3FSUNPROC glNormal3fVertex3fSUN = NULL;
PFNGLNORMAL3FVERTEX3FVSUNPROC glNormal3fVertex3fvSUN = NULL;
PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC glColor4fNormal3fVertex3fSUN = NULL;
PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC glColor4fNormal3fVertex3fvSUN = NULL;
PFNGLTEXCOORD2FVERTEX3FSUNPROC glTexCoord2fVertex3fSUN = NULL;
PFNGLTEXCOORD2FVERTEX3FVSUNPROC glTexCoord2fVertex3fvSUN = NULL;
PFNGLTEXCOORD4FVERTEX4FSUNPROC glTexCoord4fVertex4fSUN = NULL;
PFNGLTEXCOORD4FVERTEX4FVSUNPROC glTexCoord4fVertex4fvSUN = NULL;
PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC glTexCoord2fColor4ubVertex3fSUN = NULL;
PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC glTexCoord2fColor4ubVertex3fvSUN = NULL;
PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC glTexCoord2fColor3fVertex3fSUN = NULL;
PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC glTexCoord2fColor3fVertex3fvSUN = NULL;
PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC glTexCoord2fNormal3fVertex3fSUN = NULL;
PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glTexCoord2fNormal3fVertex3fvSUN = NULL;
PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glTexCoord2fColor4fNormal3fVertex3fSUN = NULL;
PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glTexCoord2fColor4fNormal3fVertex3fvSUN = NULL;
PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC glTexCoord4fColor4fNormal3fVertex4fSUN = NULL;
PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC glTexCoord4fColor4fNormal3fVertex4fvSUN = NULL;
PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC glReplacementCodeuiVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC glReplacementCodeuiVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC glReplacementCodeuiColor4ubVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC glReplacementCodeuiColor4ubVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC glReplacementCodeuiColor3fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC glReplacementCodeuiColor3fVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC glReplacementCodeuiNormal3fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC glReplacementCodeuiNormal3fVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC glReplacementCodeuiColor4fNormal3fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC glReplacementCodeuiColor4fNormal3fVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC glReplacementCodeuiTexCoord2fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC glReplacementCodeuiTexCoord2fVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = NULL;
PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = NULL;

// GL_EXT_blend_func_separate
PFNGLBLENDFUNCSEPARATEEXTPROC glBlendFuncSeparateEXT = NULL;

// GL_INGR_blend_func_separate
PFNGLBLENDFUNCSEPARATEINGRPROC glBlendFuncSeparateINGR = NULL;

// GL_EXT_vertex_weighting
PFNGLVERTEXWEIGHTFEXTPROC glVertexWeightfEXT = NULL;
PFNGLVERTEXWEIGHTFVEXTPROC glVertexWeightfvEXT = NULL;
PFNGLVERTEXWEIGHTPOINTEREXTPROC glVertexWeightPointerEXT = NULL;

// GL_NV_vertex_array_range
PFNGLFLUSHVERTEXARRAYRANGENVPROC glFlushVertexArrayRangeNV = NULL;
PFNGLVERTEXARRAYRANGENVPROC glVertexArrayRangeNV = NULL;

// GL_NV_register_combiners
PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV = NULL;
PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV = NULL;
PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV = NULL;
PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV = NULL;
PFNGLCOMBINERINPUTNVPROC glCombinerInputNV = NULL;
PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV = NULL;
PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV = NULL;
PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV = NULL;
PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV = NULL;
PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV = NULL;
PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV = NULL;
PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputParameterfvNV = NULL;
PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputParameterivNV = NULL;

// GL_MESA_resize_buffers
PFNGLRESIZEBUFFERSMESAPROC glResizeBuffersMESA = NULL;

// GL_MESA_window_pos
PFNGLWINDOWPOS2DMESAPROC glWindowPos2dMESA = NULL;
PFNGLWINDOWPOS2DVMESAPROC glWindowPos2dvMESA = NULL;
PFNGLWINDOWPOS2FMESAPROC glWindowPos2fMESA = NULL;
PFNGLWINDOWPOS2FVMESAPROC glWindowPos2fvMESA = NULL;
PFNGLWINDOWPOS2IMESAPROC glWindowPos2iMESA = NULL;
PFNGLWINDOWPOS2IVMESAPROC glWindowPos2ivMESA = NULL;
PFNGLWINDOWPOS2SMESAPROC glWindowPos2sMESA = NULL;
PFNGLWINDOWPOS2SVMESAPROC glWindowPos2svMESA = NULL;
PFNGLWINDOWPOS3DMESAPROC glWindowPos3dMESA = NULL;
PFNGLWINDOWPOS3DVMESAPROC glWindowPos3dvMESA = NULL;
PFNGLWINDOWPOS3FMESAPROC glWindowPos3fMESA = NULL;
PFNGLWINDOWPOS3FVMESAPROC glWindowPos3fvMESA = NULL;
PFNGLWINDOWPOS3IMESAPROC glWindowPos3iMESA = NULL;
PFNGLWINDOWPOS3IVMESAPROC glWindowPos3ivMESA = NULL;
PFNGLWINDOWPOS3SMESAPROC glWindowPos3sMESA = NULL;
PFNGLWINDOWPOS3SVMESAPROC glWindowPos3svMESA = NULL;
PFNGLWINDOWPOS4DMESAPROC glWindowPos4dMESA = NULL;
PFNGLWINDOWPOS4DVMESAPROC glWindowPos4dvMESA = NULL;
PFNGLWINDOWPOS4FMESAPROC glWindowPos4fMESA = NULL;
PFNGLWINDOWPOS4FVMESAPROC glWindowPos4fvMESA = NULL;
PFNGLWINDOWPOS4IMESAPROC glWindowPos4iMESA = NULL;
PFNGLWINDOWPOS4IVMESAPROC glWindowPos4ivMESA = NULL;
PFNGLWINDOWPOS4SMESAPROC glWindowPos4sMESA = NULL;
PFNGLWINDOWPOS4SVMESAPROC glWindowPos4svMESA = NULL;

// GL_IBM_multimode_draw_arrays
PFNGLMULTIMODEDRAWARRAYSIBMPROC glMultiModeDrawArraysIBM = NULL;
PFNGLMULTIMODEDRAWELEMENTSIBMPROC glMultiModeDrawElementsIBM = NULL;

// GL_IBM_vertex_array_lists
PFNGLCOLORPOINTERLISTIBMPROC glColorPointerListIBM = NULL;
PFNGLSECONDARYCOLORPOINTERLISTIBMPROC glSecondaryColorPointerListIBM = NULL;
PFNGLEDGEFLAGPOINTERLISTIBMPROC glEdgeFlagPointerListIBM = NULL;
PFNGLFOGCOORDPOINTERLISTIBMPROC glFogCoordPointerListIBM = NULL;
PFNGLINDEXPOINTERLISTIBMPROC glIndexPointerListIBM = NULL;
PFNGLNORMALPOINTERLISTIBMPROC glNormalPointerListIBM = NULL;
PFNGLTEXCOORDPOINTERLISTIBMPROC glTexCoordPointerListIBM = NULL;
PFNGLVERTEXPOINTERLISTIBMPROC glVertexPointerListIBM = NULL;

// GL_3DFX_tbuffer
PFNGLTBUFFERMASK3DFXPROC glTbufferMask3DFX = NULL;

// GL_EXT_multisample
PFNGLSAMPLEMASKEXTPROC glSampleMaskEXT = NULL;
PFNGLSAMPLEPATTERNEXTPROC glSamplePatternEXT = NULL;

// GL_SGIS_texture_color_mask
PFNGLTEXTURECOLORMASKSGISPROC glTextureColorMaskSGIS = NULL;

// GL_SGIX_igloo_interface
PFNGLIGLOOINTERFACESGIXPROC glIglooInterfaceSGIX = NULL;

// GL_NV_fence
PFNGLDELETEFENCESNVPROC glDeleteFencesNV = NULL;
PFNGLGENFENCESNVPROC glGenFencesNV = NULL;
PFNGLISFENCENVPROC glIsFenceNV = NULL;
PFNGLTESTFENCENVPROC glTestFenceNV = NULL;
PFNGLGETFENCEIVNVPROC glGetFenceivNV = NULL;
PFNGLFINISHFENCENVPROC glFinishFenceNV = NULL;
PFNGLSETFENCENVPROC glSetFenceNV = NULL;

// GL_NV_evaluators
PFNGLMAPCONTROLPOINTSNVPROC glMapControlPointsNV = NULL;
PFNGLMAPPARAMETERIVNVPROC glMapParameterivNV = NULL;
PFNGLMAPPARAMETERFVNVPROC glMapParameterfvNV = NULL;
PFNGLGETMAPCONTROLPOINTSNVPROC glGetMapControlPointsNV = NULL;
PFNGLGETMAPPARAMETERIVNVPROC glGetMapParameterivNV = NULL;
PFNGLGETMAPPARAMETERFVNVPROC glGetMapParameterfvNV = NULL;
PFNGLGETMAPATTRIBPARAMETERIVNVPROC glGetMapAttribParameterivNV = NULL;
PFNGLGETMAPATTRIBPARAMETERFVNVPROC glGetMapAttribParameterfvNV = NULL;
PFNGLEVALMAPSNVPROC glEvalMapsNV = NULL;

// GL_NV_register_combiners2
PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glCombinerStageParameterfvNV = NULL;
PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glGetCombinerStageParameterfvNV = NULL;

// GL_NV_vertex_program
PFNGLAREPROGRAMSRESIDENTNVPROC glAreProgramsResidentNV = NULL;
PFNGLBINDPROGRAMNVPROC glBindProgramNV = NULL;
PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV = NULL;
PFNGLEXECUTEPROGRAMNVPROC glExecuteProgramNV = NULL;
PFNGLGENPROGRAMSNVPROC glGenProgramsNV = NULL;
PFNGLGETPROGRAMPARAMETERDVNVPROC glGetProgramParameterdvNV = NULL;
PFNGLGETPROGRAMPARAMETERFVNVPROC glGetProgramParameterfvNV = NULL;
PFNGLGETPROGRAMIVNVPROC glGetProgramivNV = NULL;
PFNGLGETPROGRAMSTRINGNVPROC glGetProgramStringNV = NULL;
PFNGLGETTRACKMATRIXIVNVPROC glGetTrackMatrixivNV = NULL;
PFNGLGETVERTEXATTRIBDVNVPROC glGetVertexAttribdvNV = NULL;
PFNGLGETVERTEXATTRIBFVNVPROC glGetVertexAttribfvNV = NULL;
PFNGLGETVERTEXATTRIBIVNVPROC glGetVertexAttribivNV = NULL;
PFNGLGETVERTEXATTRIBPOINTERVNVPROC glGetVertexAttribPointervNV = NULL;
PFNGLISPROGRAMNVPROC glIsProgramNV = NULL;
PFNGLLOADPROGRAMNVPROC glLoadProgramNV = NULL;
PFNGLPROGRAMPARAMETER4DNVPROC glProgramParameter4dNV = NULL;
PFNGLPROGRAMPARAMETER4DVNVPROC glProgramParameter4dvNV = NULL;
PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV = NULL;
PFNGLPROGRAMPARAMETER4FVNVPROC glProgramParameter4fvNV = NULL;
PFNGLPROGRAMPARAMETERS4DVNVPROC glProgramParameters4dvNV = NULL;
PFNGLPROGRAMPARAMETERS4FVNVPROC glProgramParameters4fvNV = NULL;
PFNGLREQUESTRESIDENTPROGRAMSNVPROC glRequestResidentProgramsNV = NULL;
PFNGLTRACKMATRIXNVPROC glTrackMatrixNV = NULL;
PFNGLVERTEXATTRIBPOINTERNVPROC glVertexAttribPointerNV = NULL;
PFNGLVERTEXATTRIB1DNVPROC glVertexAttrib1dNV = NULL;
PFNGLVERTEXATTRIB1DVNVPROC glVertexAttrib1dvNV = NULL;
PFNGLVERTEXATTRIB1FNVPROC glVertexAttrib1fNV = NULL;
PFNGLVERTEXATTRIB1FVNVPROC glVertexAttrib1fvNV = NULL;
PFNGLVERTEXATTRIB1SNVPROC glVertexAttrib1sNV = NULL;
PFNGLVERTEXATTRIB1SVNVPROC glVertexAttrib1svNV = NULL;
PFNGLVERTEXATTRIB2DNVPROC glVertexAttrib2dNV = NULL;
PFNGLVERTEXATTRIB2DVNVPROC glVertexAttrib2dvNV = NULL;
PFNGLVERTEXATTRIB2FNVPROC glVertexAttrib2fNV = NULL;
PFNGLVERTEXATTRIB2FVNVPROC glVertexAttrib2fvNV = NULL;
PFNGLVERTEXATTRIB2SNVPROC glVertexAttrib2sNV = NULL;
PFNGLVERTEXATTRIB2SVNVPROC glVertexAttrib2svNV = NULL;
PFNGLVERTEXATTRIB3DNVPROC glVertexAttrib3dNV = NULL;
PFNGLVERTEXATTRIB3DVNVPROC glVertexAttrib3dvNV = NULL;
PFNGLVERTEXATTRIB3FNVPROC glVertexAttrib3fNV = NULL;
PFNGLVERTEXATTRIB3FVNVPROC glVertexAttrib3fvNV = NULL;
PFNGLVERTEXATTRIB3SNVPROC glVertexAttrib3sNV = NULL;
PFNGLVERTEXATTRIB3SVNVPROC glVertexAttrib3svNV = NULL;
PFNGLVERTEXATTRIB4DNVPROC glVertexAttrib4dNV = NULL;
PFNGLVERTEXATTRIB4DVNVPROC glVertexAttrib4dvNV = NULL;
PFNGLVERTEXATTRIB4FNVPROC glVertexAttrib4fNV = NULL;
PFNGLVERTEXATTRIB4FVNVPROC glVertexAttrib4fvNV = NULL;
PFNGLVERTEXATTRIB4SNVPROC glVertexAttrib4sNV = NULL;
PFNGLVERTEXATTRIB4SVNVPROC glVertexAttrib4svNV = NULL;
PFNGLVERTEXATTRIB4UBNVPROC glVertexAttrib4ubNV = NULL;
PFNGLVERTEXATTRIB4UBVNVPROC glVertexAttrib4ubvNV = NULL;
PFNGLVERTEXATTRIBS1DVNVPROC glVertexAttribs1dvNV = NULL;
PFNGLVERTEXATTRIBS1FVNVPROC glVertexAttribs1fvNV = NULL;
PFNGLVERTEXATTRIBS1SVNVPROC glVertexAttribs1svNV = NULL;
PFNGLVERTEXATTRIBS2DVNVPROC glVertexAttribs2dvNV = NULL;
PFNGLVERTEXATTRIBS2FVNVPROC glVertexAttribs2fvNV = NULL;
PFNGLVERTEXATTRIBS2SVNVPROC glVertexAttribs2svNV = NULL;
PFNGLVERTEXATTRIBS3DVNVPROC glVertexAttribs3dvNV = NULL;
PFNGLVERTEXATTRIBS3FVNVPROC glVertexAttribs3fvNV = NULL;
PFNGLVERTEXATTRIBS3SVNVPROC glVertexAttribs3svNV = NULL;
PFNGLVERTEXATTRIBS4DVNVPROC glVertexAttribs4dvNV = NULL;
PFNGLVERTEXATTRIBS4FVNVPROC glVertexAttribs4fvNV = NULL;
PFNGLVERTEXATTRIBS4SVNVPROC glVertexAttribs4svNV = NULL;
PFNGLVERTEXATTRIBS4UBVNVPROC glVertexAttribs4ubvNV = NULL;

// GL_ATI_envmap_bumpmap
PFNGLTEXBUMPPARAMETERIVATIPROC glTexBumpParameterivATI = NULL;
PFNGLTEXBUMPPARAMETERFVATIPROC glTexBumpParameterfvATI = NULL;
PFNGLGETTEXBUMPPARAMETERIVATIPROC glGetTexBumpParameterivATI = NULL;
PFNGLGETTEXBUMPPARAMETERFVATIPROC glGetTexBumpParameterfvATI = NULL;

// GL_ATI_fragment_shader
PFNGLGENFRAGMENTSHADERSATIPROC glGenFragmentShadersATI = NULL;
PFNGLBINDFRAGMENTSHADERATIPROC glBindFragmentShaderATI = NULL;
PFNGLDELETEFRAGMENTSHADERATIPROC glDeleteFragmentShaderATI = NULL;
PFNGLBEGINFRAGMENTSHADERATIPROC glBeginFragmentShaderATI = NULL;
PFNGLENDFRAGMENTSHADERATIPROC glEndFragmentShaderATI = NULL;
PFNGLPASSTEXCOORDATIPROC glPassTexCoordATI = NULL;
PFNGLSAMPLEMAPATIPROC glSampleMapATI = NULL;
PFNGLCOLORFRAGMENTOP1ATIPROC glColorFragmentOp1ATI = NULL;
PFNGLCOLORFRAGMENTOP2ATIPROC glColorFragmentOp2ATI = NULL;
PFNGLCOLORFRAGMENTOP3ATIPROC glColorFragmentOp3ATI = NULL;
PFNGLALPHAFRAGMENTOP1ATIPROC glAlphaFragmentOp1ATI = NULL;
PFNGLALPHAFRAGMENTOP2ATIPROC glAlphaFragmentOp2ATI = NULL;
PFNGLALPHAFRAGMENTOP3ATIPROC glAlphaFragmentOp3ATI = NULL;
PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glSetFragmentShaderConstantATI = NULL;

// GL_ATI_pn_triangles
PFNGLPNTRIANGLESIATIPROC glPNTrianglesiATI = NULL;
PFNGLPNTRIANGLESFATIPROC glPNTrianglesfATI = NULL;

// GL_ATI_vertex_array_object
PFNGLNEWOBJECTBUFFERATIPROC glNewObjectBufferATI = NULL;
PFNGLISOBJECTBUFFERATIPROC glIsObjectBufferATI = NULL;
PFNGLUPDATEOBJECTBUFFERATIPROC glUpdateObjectBufferATI = NULL;
PFNGLGETOBJECTBUFFERFVATIPROC glGetObjectBufferfvATI = NULL;
PFNGLGETOBJECTBUFFERIVATIPROC glGetObjectBufferivATI = NULL;
PFNGLFREEOBJECTBUFFERATIPROC glFreeObjectBufferATI = NULL;
PFNGLARRAYOBJECTATIPROC glArrayObjectATI = NULL;
PFNGLGETARRAYOBJECTFVATIPROC glGetArrayObjectfvATI = NULL;
PFNGLGETARRAYOBJECTIVATIPROC glGetArrayObjectivATI = NULL;
PFNGLVARIANTARRAYOBJECTATIPROC glVariantArrayObjectATI = NULL;
PFNGLGETVARIANTARRAYOBJECTFVATIPROC glGetVariantArrayObjectfvATI = NULL;
PFNGLGETVARIANTARRAYOBJECTIVATIPROC glGetVariantArrayObjectivATI = NULL;

// GL_EXT_vertex_shader
PFNGLBEGINVERTEXSHADEREXTPROC glBeginVertexShaderEXT = NULL;
PFNGLENDVERTEXSHADEREXTPROC glEndVertexShaderEXT = NULL;
PFNGLBINDVERTEXSHADEREXTPROC glBindVertexShaderEXT = NULL;
PFNGLGENVERTEXSHADERSEXTPROC glGenVertexShadersEXT = NULL;
PFNGLDELETEVERTEXSHADEREXTPROC glDeleteVertexShaderEXT = NULL;
PFNGLSHADEROP1EXTPROC glShaderOp1EXT = NULL;
PFNGLSHADEROP2EXTPROC glShaderOp2EXT = NULL;
PFNGLSHADEROP3EXTPROC glShaderOp3EXT = NULL;
PFNGLSWIZZLEEXTPROC glSwizzleEXT = NULL;
PFNGLWRITEMASKEXTPROC glWriteMaskEXT = NULL;
PFNGLINSERTCOMPONENTEXTPROC glInsertComponentEXT = NULL;
PFNGLEXTRACTCOMPONENTEXTPROC glExtractComponentEXT = NULL;
PFNGLGENSYMBOLSEXTPROC glGenSymbolsEXT = NULL;
PFNGLSETINVARIANTEXTPROC glSetInvariantEXT = NULL;
PFNGLSETLOCALCONSTANTEXTPROC glSetLocalConstantEXT = NULL;
PFNGLVARIANTBVEXTPROC glVariantbvEXT = NULL;
PFNGLVARIANTSVEXTPROC glVariantsvEXT = NULL;
PFNGLVARIANTIVEXTPROC glVariantivEXT = NULL;
PFNGLVARIANTFVEXTPROC glVariantfvEXT = NULL;
PFNGLVARIANTDVEXTPROC glVariantdvEXT = NULL;
PFNGLVARIANTUBVEXTPROC glVariantubvEXT = NULL;
PFNGLVARIANTUSVEXTPROC glVariantusvEXT = NULL;
PFNGLVARIANTUIVEXTPROC glVariantuivEXT = NULL;
PFNGLVARIANTPOINTEREXTPROC glVariantPointerEXT = NULL;
PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glEnableVariantClientStateEXT = NULL;
PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glDisableVariantClientStateEXT = NULL;
PFNGLBINDLIGHTPARAMETEREXTPROC glBindLightParameterEXT = NULL;
PFNGLBINDMATERIALPARAMETEREXTPROC glBindMaterialParameterEXT = NULL;
PFNGLBINDTEXGENPARAMETEREXTPROC glBindTexGenParameterEXT = NULL;
PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glBindTextureUnitParameterEXT = NULL;
PFNGLBINDPARAMETEREXTPROC glBindParameterEXT = NULL;
PFNGLISVARIANTENABLEDEXTPROC glIsVariantEnabledEXT = NULL;
PFNGLGETVARIANTBOOLEANVEXTPROC glGetVariantBooleanvEXT = NULL;
PFNGLGETVARIANTINTEGERVEXTPROC glGetVariantIntegervEXT = NULL;
PFNGLGETVARIANTFLOATVEXTPROC glGetVariantFloatvEXT = NULL;
PFNGLGETVARIANTPOINTERVEXTPROC glGetVariantPointervEXT = NULL;
PFNGLGETINVARIANTBOOLEANVEXTPROC glGetInvariantBooleanvEXT = NULL;
PFNGLGETINVARIANTINTEGERVEXTPROC glGetInvariantIntegervEXT = NULL;
PFNGLGETINVARIANTFLOATVEXTPROC glGetInvariantFloatvEXT = NULL;
PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glGetLocalConstantBooleanvEXT = NULL;
PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glGetLocalConstantIntegervEXT = NULL;
PFNGLGETLOCALCONSTANTFLOATVEXTPROC glGetLocalConstantFloatvEXT = NULL;

// GL_ATI_vertex_streams
PFNGLVERTEXSTREAM1SATIPROC glVertexStream1sATI = NULL;
PFNGLVERTEXSTREAM1SVATIPROC glVertexStream1svATI = NULL;
PFNGLVERTEXSTREAM1IATIPROC glVertexStream1iATI = NULL;
PFNGLVERTEXSTREAM1IVATIPROC glVertexStream1ivATI = NULL;
PFNGLVERTEXSTREAM1FATIPROC glVertexStream1fATI = NULL;
PFNGLVERTEXSTREAM1FVATIPROC glVertexStream1fvATI = NULL;
PFNGLVERTEXSTREAM1DATIPROC glVertexStream1dATI = NULL;
PFNGLVERTEXSTREAM1DVATIPROC glVertexStream1dvATI = NULL;
PFNGLVERTEXSTREAM2SATIPROC glVertexStream2sATI = NULL;
PFNGLVERTEXSTREAM2SVATIPROC glVertexStream2svATI = NULL;
PFNGLVERTEXSTREAM2IATIPROC glVertexStream2iATI = NULL;
PFNGLVERTEXSTREAM2IVATIPROC glVertexStream2ivATI = NULL;
PFNGLVERTEXSTREAM2FATIPROC glVertexStream2fATI = NULL;
PFNGLVERTEXSTREAM2FVATIPROC glVertexStream2fvATI = NULL;
PFNGLVERTEXSTREAM2DATIPROC glVertexStream2dATI = NULL;
PFNGLVERTEXSTREAM2DVATIPROC glVertexStream2dvATI = NULL;
PFNGLVERTEXSTREAM3SATIPROC glVertexStream3sATI = NULL;
PFNGLVERTEXSTREAM3SVATIPROC glVertexStream3svATI = NULL;
PFNGLVERTEXSTREAM3IATIPROC glVertexStream3iATI = NULL;
PFNGLVERTEXSTREAM3IVATIPROC glVertexStream3ivATI = NULL;
PFNGLVERTEXSTREAM3FATIPROC glVertexStream3fATI = NULL;
PFNGLVERTEXSTREAM3FVATIPROC glVertexStream3fvATI = NULL;
PFNGLVERTEXSTREAM3DATIPROC glVertexStream3dATI = NULL;
PFNGLVERTEXSTREAM3DVATIPROC glVertexStream3dvATI = NULL;
PFNGLVERTEXSTREAM4SATIPROC glVertexStream4sATI = NULL;
PFNGLVERTEXSTREAM4SVATIPROC glVertexStream4svATI = NULL;
PFNGLVERTEXSTREAM4IATIPROC glVertexStream4iATI = NULL;
PFNGLVERTEXSTREAM4IVATIPROC glVertexStream4ivATI = NULL;
PFNGLVERTEXSTREAM4FATIPROC glVertexStream4fATI = NULL;
PFNGLVERTEXSTREAM4FVATIPROC glVertexStream4fvATI = NULL;
PFNGLVERTEXSTREAM4DATIPROC glVertexStream4dATI = NULL;
PFNGLVERTEXSTREAM4DVATIPROC glVertexStream4dvATI = NULL;
PFNGLNORMALSTREAM3BATIPROC glNormalStream3bATI = NULL;
PFNGLNORMALSTREAM3BVATIPROC glNormalStream3bvATI = NULL;
PFNGLNORMALSTREAM3SATIPROC glNormalStream3sATI = NULL;
PFNGLNORMALSTREAM3SVATIPROC glNormalStream3svATI = NULL;
PFNGLNORMALSTREAM3IATIPROC glNormalStream3iATI = NULL;
PFNGLNORMALSTREAM3IVATIPROC glNormalStream3ivATI = NULL;
PFNGLNORMALSTREAM3FATIPROC glNormalStream3fATI = NULL;
PFNGLNORMALSTREAM3FVATIPROC glNormalStream3fvATI = NULL;
PFNGLNORMALSTREAM3DATIPROC glNormalStream3dATI = NULL;
PFNGLNORMALSTREAM3DVATIPROC glNormalStream3dvATI = NULL;
PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glClientActiveVertexStreamATI = NULL;
PFNGLVERTEXBLENDENVIATIPROC glVertexBlendEnviATI = NULL;
PFNGLVERTEXBLENDENVFATIPROC glVertexBlendEnvfATI = NULL;

// GL_ATI_element_array
PFNGLELEMENTPOINTERATIPROC glElementPointerATI = NULL;
PFNGLDRAWELEMENTARRAYATIPROC glDrawElementArrayATI = NULL;
PFNGLDRAWRANGEELEMENTARRAYATIPROC glDrawRangeElementArrayATI = NULL;

// GL_SUN_mesh_array
PFNGLDRAWMESHARRAYSSUNPROC glDrawMeshArraysSUN = NULL;

// GL_NV_occlusion_query
PFNGLGENOCCLUSIONQUERIESNVPROC glGenOcclusionQueriesNV = NULL;
PFNGLDELETEOCCLUSIONQUERIESNVPROC glDeleteOcclusionQueriesNV = NULL;
PFNGLISOCCLUSIONQUERYNVPROC glIsOcclusionQueryNV = NULL;
PFNGLBEGINOCCLUSIONQUERYNVPROC glBeginOcclusionQueryNV = NULL;
PFNGLENDOCCLUSIONQUERYNVPROC glEndOcclusionQueryNV = NULL;
PFNGLGETOCCLUSIONQUERYIVNVPROC glGetOcclusionQueryivNV = NULL;
PFNGLGETOCCLUSIONQUERYUIVNVPROC glGetOcclusionQueryuivNV = NULL;

// GL_NV_point_sprite
PFNGLPOINTPARAMETERINVPROC glPointParameteriNV = NULL;
PFNGLPOINTPARAMETERIVNVPROC glPointParameterivNV = NULL;

// GL_EXT_stencil_two_side
PFNGLACTIVESTENCILFACEEXTPROC glActiveStencilFaceEXT = NULL;

// GL_APPLE_element_array
PFNGLELEMENTPOINTERAPPLEPROC glElementPointerAPPLE = NULL;
PFNGLDRAWELEMENTARRAYAPPLEPROC glDrawElementArrayAPPLE = NULL;
PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC glDrawRangeElementArrayAPPLE = NULL;
PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC glMultiDrawElementArrayAPPLE = NULL;
PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC glMultiDrawRangeElementArrayAPPLE = NULL;

// GL_APPLE_fence
PFNGLGENFENCESAPPLEPROC glGenFencesAPPLE = NULL;
PFNGLDELETEFENCESAPPLEPROC glDeleteFencesAPPLE = NULL;
PFNGLSETFENCEAPPLEPROC glSetFenceAPPLE = NULL;
PFNGLISFENCEAPPLEPROC glIsFenceAPPLE = NULL;
PFNGLTESTFENCEAPPLEPROC glTestFenceAPPLE = NULL;
PFNGLFINISHFENCEAPPLEPROC glFinishFenceAPPLE = NULL;
PFNGLTESTOBJECTAPPLEPROC glTestObjectAPPLE = NULL;
PFNGLFINISHOBJECTAPPLEPROC glFinishObjectAPPLE = NULL;

// GL_APPLE_vertex_array_object
PFNGLBINDVERTEXARRAYAPPLEPROC glBindVertexArrayAPPLE = NULL;
PFNGLDELETEVERTEXARRAYSAPPLEPROC glDeleteVertexArraysAPPLE = NULL;
PFNGLGENVERTEXARRAYSAPPLEPROC glGenVertexArraysAPPLE = NULL;
PFNGLISVERTEXARRAYAPPLEPROC glIsVertexArrayAPPLE = NULL;

// GL_APPLE_vertex_array_range
PFNGLVERTEXARRAYRANGEAPPLEPROC glVertexArrayRangeAPPLE = NULL;
PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC glFlushVertexArrayRangeAPPLE = NULL;
PFNGLVERTEXARRAYPARAMETERIAPPLEPROC glVertexArrayParameteriAPPLE = NULL;

// GL_ATI_draw_buffers
PFNGLDRAWBUFFERSATIPROC glDrawBuffersATI = NULL;

// GL_NV_fragment_program
PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glProgramNamedParameter4fNV = NULL;
PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glProgramNamedParameter4dNV = NULL;
PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glProgramNamedParameter4fvNV = NULL;
PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glProgramNamedParameter4dvNV = NULL;
PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glGetProgramNamedParameterfvNV = NULL;
PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glGetProgramNamedParameterdvNV = NULL;

// GL_NV_half_float
PFNGLVERTEX2HNVPROC glVertex2hNV = NULL;
PFNGLVERTEX2HVNVPROC glVertex2hvNV = NULL;
PFNGLVERTEX3HNVPROC glVertex3hNV = NULL;
PFNGLVERTEX3HVNVPROC glVertex3hvNV = NULL;
PFNGLVERTEX4HNVPROC glVertex4hNV = NULL;
PFNGLVERTEX4HVNVPROC glVertex4hvNV = NULL;
PFNGLNORMAL3HNVPROC glNormal3hNV = NULL;
PFNGLNORMAL3HVNVPROC glNormal3hvNV = NULL;
PFNGLCOLOR3HNVPROC glColor3hNV = NULL;
PFNGLCOLOR3HVNVPROC glColor3hvNV = NULL;
PFNGLCOLOR4HNVPROC glColor4hNV = NULL;
PFNGLCOLOR4HVNVPROC glColor4hvNV = NULL;
PFNGLTEXCOORD1HNVPROC glTexCoord1hNV = NULL;
PFNGLTEXCOORD1HVNVPROC glTexCoord1hvNV = NULL;
PFNGLTEXCOORD2HNVPROC glTexCoord2hNV = NULL;
PFNGLTEXCOORD2HVNVPROC glTexCoord2hvNV = NULL;
PFNGLTEXCOORD3HNVPROC glTexCoord3hNV = NULL;
PFNGLTEXCOORD3HVNVPROC glTexCoord3hvNV = NULL;
PFNGLTEXCOORD4HNVPROC glTexCoord4hNV = NULL;
PFNGLTEXCOORD4HVNVPROC glTexCoord4hvNV = NULL;
PFNGLMULTITEXCOORD1HNVPROC glMultiTexCoord1hNV = NULL;
PFNGLMULTITEXCOORD1HVNVPROC glMultiTexCoord1hvNV = NULL;
PFNGLMULTITEXCOORD2HNVPROC glMultiTexCoord2hNV = NULL;
PFNGLMULTITEXCOORD2HVNVPROC glMultiTexCoord2hvNV = NULL;
PFNGLMULTITEXCOORD3HNVPROC glMultiTexCoord3hNV = NULL;
PFNGLMULTITEXCOORD3HVNVPROC glMultiTexCoord3hvNV = NULL;
PFNGLMULTITEXCOORD4HNVPROC glMultiTexCoord4hNV = NULL;
PFNGLMULTITEXCOORD4HVNVPROC glMultiTexCoord4hvNV = NULL;
PFNGLFOGCOORDHNVPROC glFogCoordhNV = NULL;
PFNGLFOGCOORDHVNVPROC glFogCoordhvNV = NULL;
PFNGLSECONDARYCOLOR3HNVPROC glSecondaryColor3hNV = NULL;
PFNGLSECONDARYCOLOR3HVNVPROC glSecondaryColor3hvNV = NULL;
PFNGLVERTEXWEIGHTHNVPROC glVertexWeighthNV = NULL;
PFNGLVERTEXWEIGHTHVNVPROC glVertexWeighthvNV = NULL;
PFNGLVERTEXATTRIB1HNVPROC glVertexAttrib1hNV = NULL;
PFNGLVERTEXATTRIB1HVNVPROC glVertexAttrib1hvNV = NULL;
PFNGLVERTEXATTRIB2HNVPROC glVertexAttrib2hNV = NULL;
PFNGLVERTEXATTRIB2HVNVPROC glVertexAttrib2hvNV = NULL;
PFNGLVERTEXATTRIB3HNVPROC glVertexAttrib3hNV = NULL;
PFNGLVERTEXATTRIB3HVNVPROC glVertexAttrib3hvNV = NULL;
PFNGLVERTEXATTRIB4HNVPROC glVertexAttrib4hNV = NULL;
PFNGLVERTEXATTRIB4HVNVPROC glVertexAttrib4hvNV = NULL;
PFNGLVERTEXATTRIBS1HVNVPROC glVertexAttribs1hvNV = NULL;
PFNGLVERTEXATTRIBS2HVNVPROC glVertexAttribs2hvNV = NULL;
PFNGLVERTEXATTRIBS3HVNVPROC glVertexAttribs3hvNV = NULL;
PFNGLVERTEXATTRIBS4HVNVPROC glVertexAttribs4hvNV = NULL;

// GL_NV_pixel_data_range
PFNGLPIXELDATARANGENVPROC glPixelDataRangeNV = NULL;
PFNGLFLUSHPIXELDATARANGENVPROC glFlushPixelDataRangeNV = NULL;

// GL_NV_primitive_restart
PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV = NULL;
PFNGLPRIMITIVERESTARTINDEXNVPROC glPrimitiveRestartIndexNV = NULL;

// GL_ATI_map_object_buffer
PFNGLMAPOBJECTBUFFERATIPROC glMapObjectBufferATI = NULL;
PFNGLUNMAPOBJECTBUFFERATIPROC glUnmapObjectBufferATI = NULL;

// GL_ATI_separate_stencil
PFNGLSTENCILOPSEPARATEATIPROC glStencilOpSeparateATI = NULL;
PFNGLSTENCILFUNCSEPARATEATIPROC glStencilFuncSeparateATI = NULL;

// GL_ATI_vertex_attrib_array_object
PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glVertexAttribArrayObjectATI = NULL;
PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC glGetVertexAttribArrayObjectfvATI = NULL;
PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC glGetVertexAttribArrayObjectivATI = NULL;

// GL_EXT_depth_bounds_test
PFNGLDEPTHBOUNDSEXTPROC glDepthBoundsEXT = NULL;

// GL_EXT_blend_equation_separate
PFNGLBLENDEQUATIONSEPARATEEXTPROC glBlendEquationSeparateEXT = NULL;

// GL_EXT_framebuffer_object
PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT = NULL;
PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT = NULL;
PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT = NULL;
PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT = NULL;
PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT = NULL;
PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT = NULL;
PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT = NULL;
PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT = NULL;
PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT = NULL;
PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT = NULL;
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT = NULL;
PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT = NULL;
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT = NULL;
PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT = NULL;
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT = NULL;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT = NULL;
PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT = NULL;

// GL_GREMEDY_string_marker
PFNGLSTRINGMARKERGREMEDYPROC glStringMarkerGREMEDY = NULL;

// GL_EXT_stencil_clear_tag
PFNGLSTENCILCLEARTAGEXTPROC glStencilClearTagEXT = NULL;

// GL_EXT_framebuffer_blit
PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT = NULL;

// GL_EXT_framebuffer_multisample
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT = NULL;

// GL_EXT_timer_query
PFNGLGETQUERYOBJECTI64VEXTPROC glGetQueryObjecti64vEXT = NULL;
PFNGLGETQUERYOBJECTUI64VEXTPROC glGetQueryObjectui64vEXT = NULL;

// GL_EXT_gpu_program_parameters
PFNGLPROGRAMENVPARAMETERS4FVEXTPROC glProgramEnvParameters4fvEXT = NULL;
PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC glProgramLocalParameters4fvEXT = NULL;

// GL_APPLE_flush_buffer_range
PFNGLBUFFERPARAMETERIAPPLEPROC glBufferParameteriAPPLE = NULL;
PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glFlushMappedBufferRangeAPPLE = NULL;

// GL_NV_gpu_program4
PFNGLPROGRAMLOCALPARAMETERI4INVPROC glProgramLocalParameterI4iNV = NULL;
PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC glProgramLocalParameterI4ivNV = NULL;
PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC glProgramLocalParametersI4ivNV = NULL;
PFNGLPROGRAMLOCALPARAMETERI4UINVPROC glProgramLocalParameterI4uiNV = NULL;
PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC glProgramLocalParameterI4uivNV = NULL;
PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC glProgramLocalParametersI4uivNV = NULL;
PFNGLPROGRAMENVPARAMETERI4INVPROC glProgramEnvParameterI4iNV = NULL;
PFNGLPROGRAMENVPARAMETERI4IVNVPROC glProgramEnvParameterI4ivNV = NULL;
PFNGLPROGRAMENVPARAMETERSI4IVNVPROC glProgramEnvParametersI4ivNV = NULL;
PFNGLPROGRAMENVPARAMETERI4UINVPROC glProgramEnvParameterI4uiNV = NULL;
PFNGLPROGRAMENVPARAMETERI4UIVNVPROC glProgramEnvParameterI4uivNV = NULL;
PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC glProgramEnvParametersI4uivNV = NULL;
PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC glGetProgramLocalParameterIivNV = NULL;
PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC glGetProgramLocalParameterIuivNV = NULL;
PFNGLGETPROGRAMENVPARAMETERIIVNVPROC glGetProgramEnvParameterIivNV = NULL;
PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC glGetProgramEnvParameterIuivNV = NULL;

// GL_NV_geometry_program4
PFNGLPROGRAMVERTEXLIMITNVPROC glProgramVertexLimitNV = NULL;
PFNGLFRAMEBUFFERTEXTUREEXTPROC glFramebufferTextureEXT = NULL;
PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC glFramebufferTextureLayerEXT = NULL;
PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC glFramebufferTextureFaceEXT = NULL;

// GL_EXT_geometry_shader4
PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXT = NULL;

// GL_NV_vertex_program4
PFNGLVERTEXATTRIBI1IEXTPROC glVertexAttribI1iEXT = NULL;
PFNGLVERTEXATTRIBI2IEXTPROC glVertexAttribI2iEXT = NULL;
PFNGLVERTEXATTRIBI3IEXTPROC glVertexAttribI3iEXT = NULL;
PFNGLVERTEXATTRIBI4IEXTPROC glVertexAttribI4iEXT = NULL;
PFNGLVERTEXATTRIBI1UIEXTPROC glVertexAttribI1uiEXT = NULL;
PFNGLVERTEXATTRIBI2UIEXTPROC glVertexAttribI2uiEXT = NULL;
PFNGLVERTEXATTRIBI3UIEXTPROC glVertexAttribI3uiEXT = NULL;
PFNGLVERTEXATTRIBI4UIEXTPROC glVertexAttribI4uiEXT = NULL;
PFNGLVERTEXATTRIBI1IVEXTPROC glVertexAttribI1ivEXT = NULL;
PFNGLVERTEXATTRIBI2IVEXTPROC glVertexAttribI2ivEXT = NULL;
PFNGLVERTEXATTRIBI3IVEXTPROC glVertexAttribI3ivEXT = NULL;
PFNGLVERTEXATTRIBI4IVEXTPROC glVertexAttribI4ivEXT = NULL;
PFNGLVERTEXATTRIBI1UIVEXTPROC glVertexAttribI1uivEXT = NULL;
PFNGLVERTEXATTRIBI2UIVEXTPROC glVertexAttribI2uivEXT = NULL;
PFNGLVERTEXATTRIBI3UIVEXTPROC glVertexAttribI3uivEXT = NULL;
PFNGLVERTEXATTRIBI4UIVEXTPROC glVertexAttribI4uivEXT = NULL;
PFNGLVERTEXATTRIBI4BVEXTPROC glVertexAttribI4bvEXT = NULL;
PFNGLVERTEXATTRIBI4SVEXTPROC glVertexAttribI4svEXT = NULL;
PFNGLVERTEXATTRIBI4UBVEXTPROC glVertexAttribI4ubvEXT = NULL;
PFNGLVERTEXATTRIBI4USVEXTPROC glVertexAttribI4usvEXT = NULL;
PFNGLVERTEXATTRIBIPOINTEREXTPROC glVertexAttribIPointerEXT = NULL;
PFNGLGETVERTEXATTRIBIIVEXTPROC glGetVertexAttribIivEXT = NULL;
PFNGLGETVERTEXATTRIBIUIVEXTPROC glGetVertexAttribIuivEXT = NULL;

// GL_EXT_gpu_shader4
PFNGLGETUNIFORMUIVEXTPROC glGetUniformuivEXT = NULL;
PFNGLBINDFRAGDATALOCATIONEXTPROC glBindFragDataLocationEXT = NULL;
PFNGLGETFRAGDATALOCATIONEXTPROC glGetFragDataLocationEXT = NULL;
PFNGLUNIFORM1UIEXTPROC glUniform1uiEXT = NULL;
PFNGLUNIFORM2UIEXTPROC glUniform2uiEXT = NULL;
PFNGLUNIFORM3UIEXTPROC glUniform3uiEXT = NULL;
PFNGLUNIFORM4UIEXTPROC glUniform4uiEXT = NULL;
PFNGLUNIFORM1UIVEXTPROC glUniform1uivEXT = NULL;
PFNGLUNIFORM2UIVEXTPROC glUniform2uivEXT = NULL;
PFNGLUNIFORM3UIVEXTPROC glUniform3uivEXT = NULL;
PFNGLUNIFORM4UIVEXTPROC glUniform4uivEXT = NULL;

// GL_EXT_draw_instanced
PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstancedEXT = NULL;
PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstancedEXT = NULL;

// GL_EXT_texture_buffer_object
PFNGLTEXBUFFEREXTPROC glTexBufferEXT = NULL;

// GL_NV_depth_buffer_float
PFNGLDEPTHRANGEDNVPROC glDepthRangedNV = NULL;
PFNGLCLEARDEPTHDNVPROC glClearDepthdNV = NULL;
PFNGLDEPTHBOUNDSDNVPROC glDepthBoundsdNV = NULL;

// GL_NV_framebuffer_multisample_coverage
PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC glRenderbufferStorageMultisampleCoverageNV = NULL;

// GL_NV_parameter_buffer_object
PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC glProgramBufferParametersfvNV = NULL;
PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC glProgramBufferParametersIivNV = NULL;
PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC glProgramBufferParametersIuivNV = NULL;

// GL_EXT_draw_buffers2
PFNGLCOLORMASKINDEXEDEXTPROC glColorMaskIndexedEXT = NULL;
PFNGLGETBOOLEANINDEXEDVEXTPROC glGetBooleanIndexedvEXT = NULL;
PFNGLGETINTEGERINDEXEDVEXTPROC glGetIntegerIndexedvEXT = NULL;
PFNGLENABLEINDEXEDEXTPROC glEnableIndexedEXT = NULL;
PFNGLDISABLEINDEXEDEXTPROC glDisableIndexedEXT = NULL;
PFNGLISENABLEDINDEXEDEXTPROC glIsEnabledIndexedEXT = NULL;

// GL_NV_transform_feedback
PFNGLBEGINTRANSFORMFEEDBACKNVPROC glBeginTransformFeedbackNV = NULL;
PFNGLENDTRANSFORMFEEDBACKNVPROC glEndTransformFeedbackNV = NULL;
PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC glTransformFeedbackAttribsNV = NULL;
PFNGLBINDBUFFERRANGENVPROC glBindBufferRangeNV = NULL;
PFNGLBINDBUFFEROFFSETNVPROC glBindBufferOffsetNV = NULL;
PFNGLBINDBUFFERBASENVPROC glBindBufferBaseNV = NULL;
PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC glTransformFeedbackVaryingsNV = NULL;
PFNGLACTIVEVARYINGNVPROC glActiveVaryingNV = NULL;
PFNGLGETVARYINGLOCATIONNVPROC glGetVaryingLocationNV = NULL;
PFNGLGETACTIVEVARYINGNVPROC glGetActiveVaryingNV = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC glGetTransformFeedbackVaryingNV = NULL;

// GL_EXT_bindable_uniform
PFNGLUNIFORMBUFFEREXTPROC glUniformBufferEXT = NULL;
PFNGLGETUNIFORMBUFFERSIZEEXTPROC glGetUniformBufferSizeEXT = NULL;
PFNGLGETUNIFORMOFFSETEXTPROC glGetUniformOffsetEXT = NULL;

// GL_EXT_texture_integer
PFNGLTEXPARAMETERIIVEXTPROC glTexParameterIivEXT = NULL;
PFNGLTEXPARAMETERIUIVEXTPROC glTexParameterIuivEXT = NULL;
PFNGLGETTEXPARAMETERIIVEXTPROC glGetTexParameterIivEXT = NULL;
PFNGLGETTEXPARAMETERIUIVEXTPROC glGetTexParameterIuivEXT = NULL;
PFNGLCLEARCOLORIIEXTPROC glClearColorIiEXT = NULL;
PFNGLCLEARCOLORIUIEXTPROC glClearColorIuiEXT = NULL;

// GL_GREMEDY_frame_terminator
PFNGLFRAMETERMINATORGREMEDYPROC glFrameTerminatorGREMEDY = NULL;

// GL_NV_conditional_render
PFNGLBEGINCONDITIONALRENDERNVPROC glBeginConditionalRenderNV = NULL;
PFNGLENDCONDITIONALRENDERNVPROC glEndConditionalRenderNV = NULL;

// GL_NV_present_video
PFNGLPRESENTFRAMEKEYEDNVPROC glPresentFrameKeyedNV = NULL;
PFNGLPRESENTFRAMEDUALFILLNVPROC glPresentFrameDualFillNV = NULL;
PFNGLGETVIDEOIVNVPROC glGetVideoivNV = NULL;
PFNGLGETVIDEOUIVNVPROC glGetVideouivNV = NULL;
PFNGLGETVIDEOI64VNVPROC glGetVideoi64vNV = NULL;
PFNGLGETVIDEOUI64VNVPROC glGetVideoui64vNV = NULL;

// GL_EXT_transform_feedback
PFNGLBEGINTRANSFORMFEEDBACKEXTPROC glBeginTransformFeedbackEXT = NULL;
PFNGLENDTRANSFORMFEEDBACKEXTPROC glEndTransformFeedbackEXT = NULL;
PFNGLBINDBUFFERRANGEEXTPROC glBindBufferRangeEXT = NULL;
PFNGLBINDBUFFEROFFSETEXTPROC glBindBufferOffsetEXT = NULL;
PFNGLBINDBUFFERBASEEXTPROC glBindBufferBaseEXT = NULL;
PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC glTransformFeedbackVaryingsEXT = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC glGetTransformFeedbackVaryingEXT = NULL;

// GL_EXT_direct_state_access
PFNGLCLIENTATTRIBDEFAULTEXTPROC glClientAttribDefaultEXT = NULL;
PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC glPushClientAttribDefaultEXT = NULL;
PFNGLMATRIXLOADFEXTPROC glMatrixLoadfEXT = NULL;
PFNGLMATRIXLOADDEXTPROC glMatrixLoaddEXT = NULL;
PFNGLMATRIXMULTFEXTPROC glMatrixMultfEXT = NULL;
PFNGLMATRIXMULTDEXTPROC glMatrixMultdEXT = NULL;
PFNGLMATRIXLOADIDENTITYEXTPROC glMatrixLoadIdentityEXT = NULL;
PFNGLMATRIXROTATEFEXTPROC glMatrixRotatefEXT = NULL;
PFNGLMATRIXROTATEDEXTPROC glMatrixRotatedEXT = NULL;
PFNGLMATRIXSCALEFEXTPROC glMatrixScalefEXT = NULL;
PFNGLMATRIXSCALEDEXTPROC glMatrixScaledEXT = NULL;
PFNGLMATRIXTRANSLATEFEXTPROC glMatrixTranslatefEXT = NULL;
PFNGLMATRIXTRANSLATEDEXTPROC glMatrixTranslatedEXT = NULL;
PFNGLMATRIXFRUSTUMEXTPROC glMatrixFrustumEXT = NULL;
PFNGLMATRIXORTHOEXTPROC glMatrixOrthoEXT = NULL;
PFNGLMATRIXPOPEXTPROC glMatrixPopEXT = NULL;
PFNGLMATRIXPUSHEXTPROC glMatrixPushEXT = NULL;
PFNGLMATRIXLOADTRANSPOSEFEXTPROC glMatrixLoadTransposefEXT = NULL;
PFNGLMATRIXLOADTRANSPOSEDEXTPROC glMatrixLoadTransposedEXT = NULL;
PFNGLMATRIXMULTTRANSPOSEFEXTPROC glMatrixMultTransposefEXT = NULL;
PFNGLMATRIXMULTTRANSPOSEDEXTPROC glMatrixMultTransposedEXT = NULL;
PFNGLTEXTUREPARAMETERFEXTPROC glTextureParameterfEXT = NULL;
PFNGLTEXTUREPARAMETERFVEXTPROC glTextureParameterfvEXT = NULL;
PFNGLTEXTUREPARAMETERIEXTPROC glTextureParameteriEXT = NULL;
PFNGLTEXTUREPARAMETERIVEXTPROC glTextureParameterivEXT = NULL;
PFNGLTEXTUREIMAGE1DEXTPROC glTextureImage1DEXT = NULL;
PFNGLTEXTUREIMAGE2DEXTPROC glTextureImage2DEXT = NULL;
PFNGLTEXTURESUBIMAGE1DEXTPROC glTextureSubImage1DEXT = NULL;
PFNGLTEXTURESUBIMAGE2DEXTPROC glTextureSubImage2DEXT = NULL;
PFNGLCOPYTEXTUREIMAGE1DEXTPROC glCopyTextureImage1DEXT = NULL;
PFNGLCOPYTEXTUREIMAGE2DEXTPROC glCopyTextureImage2DEXT = NULL;
PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glCopyTextureSubImage1DEXT = NULL;
PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glCopyTextureSubImage2DEXT = NULL;
PFNGLGETTEXTUREIMAGEEXTPROC glGetTextureImageEXT = NULL;
PFNGLGETTEXTUREPARAMETERFVEXTPROC glGetTextureParameterfvEXT = NULL;
PFNGLGETTEXTUREPARAMETERIVEXTPROC glGetTextureParameterivEXT = NULL;
PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glGetTextureLevelParameterfvEXT = NULL;
PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glGetTextureLevelParameterivEXT = NULL;
PFNGLTEXTUREIMAGE3DEXTPROC glTextureImage3DEXT = NULL;
PFNGLTEXTURESUBIMAGE3DEXTPROC glTextureSubImage3DEXT = NULL;
PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glCopyTextureSubImage3DEXT = NULL;
PFNGLMULTITEXPARAMETERFEXTPROC glMultiTexParameterfEXT = NULL;
PFNGLMULTITEXPARAMETERFVEXTPROC glMultiTexParameterfvEXT = NULL;
PFNGLMULTITEXPARAMETERIEXTPROC glMultiTexParameteriEXT = NULL;
PFNGLMULTITEXPARAMETERIVEXTPROC glMultiTexParameterivEXT = NULL;
PFNGLMULTITEXIMAGE1DEXTPROC glMultiTexImage1DEXT = NULL;
PFNGLMULTITEXIMAGE2DEXTPROC glMultiTexImage2DEXT = NULL;
PFNGLMULTITEXSUBIMAGE1DEXTPROC glMultiTexSubImage1DEXT = NULL;
PFNGLMULTITEXSUBIMAGE2DEXTPROC glMultiTexSubImage2DEXT = NULL;
PFNGLCOPYMULTITEXIMAGE1DEXTPROC glCopyMultiTexImage1DEXT = NULL;
PFNGLCOPYMULTITEXIMAGE2DEXTPROC glCopyMultiTexImage2DEXT = NULL;
PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glCopyMultiTexSubImage1DEXT = NULL;
PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glCopyMultiTexSubImage2DEXT = NULL;
PFNGLGETMULTITEXIMAGEEXTPROC glGetMultiTexImageEXT = NULL;
PFNGLGETMULTITEXPARAMETERFVEXTPROC glGetMultiTexParameterfvEXT = NULL;
PFNGLGETMULTITEXPARAMETERIVEXTPROC glGetMultiTexParameterivEXT = NULL;
PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glGetMultiTexLevelParameterfvEXT = NULL;
PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glGetMultiTexLevelParameterivEXT = NULL;
PFNGLMULTITEXIMAGE3DEXTPROC glMultiTexImage3DEXT = NULL;
PFNGLMULTITEXSUBIMAGE3DEXTPROC glMultiTexSubImage3DEXT = NULL;
PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glCopyMultiTexSubImage3DEXT = NULL;
PFNGLBINDMULTITEXTUREEXTPROC glBindMultiTextureEXT = NULL;
PFNGLENABLECLIENTSTATEINDEXEDEXTPROC glEnableClientStateIndexedEXT = NULL;
PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC glDisableClientStateIndexedEXT = NULL;
PFNGLMULTITEXCOORDPOINTEREXTPROC glMultiTexCoordPointerEXT = NULL;
PFNGLMULTITEXENVFEXTPROC glMultiTexEnvfEXT = NULL;
PFNGLMULTITEXENVFVEXTPROC glMultiTexEnvfvEXT = NULL;
PFNGLMULTITEXENVIEXTPROC glMultiTexEnviEXT = NULL;
PFNGLMULTITEXENVIVEXTPROC glMultiTexEnvivEXT = NULL;
PFNGLMULTITEXGENDEXTPROC glMultiTexGendEXT = NULL;
PFNGLMULTITEXGENDVEXTPROC glMultiTexGendvEXT = NULL;
PFNGLMULTITEXGENFEXTPROC glMultiTexGenfEXT = NULL;
PFNGLMULTITEXGENFVEXTPROC glMultiTexGenfvEXT = NULL;
PFNGLMULTITEXGENIEXTPROC glMultiTexGeniEXT = NULL;
PFNGLMULTITEXGENIVEXTPROC glMultiTexGenivEXT = NULL;
PFNGLGETMULTITEXENVFVEXTPROC glGetMultiTexEnvfvEXT = NULL;
PFNGLGETMULTITEXENVIVEXTPROC glGetMultiTexEnvivEXT = NULL;
PFNGLGETMULTITEXGENDVEXTPROC glGetMultiTexGendvEXT = NULL;
PFNGLGETMULTITEXGENFVEXTPROC glGetMultiTexGenfvEXT = NULL;
PFNGLGETMULTITEXGENIVEXTPROC glGetMultiTexGenivEXT = NULL;
PFNGLGETFLOATINDEXEDVEXTPROC glGetFloatIndexedvEXT = NULL;
PFNGLGETDOUBLEINDEXEDVEXTPROC glGetDoubleIndexedvEXT = NULL;
PFNGLGETPOINTERINDEXEDVEXTPROC glGetPointerIndexedvEXT = NULL;
PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC glCompressedTextureImage3DEXT = NULL;
PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC glCompressedTextureImage2DEXT = NULL;
PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC glCompressedTextureImage1DEXT = NULL;
PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glCompressedTextureSubImage3DEXT = NULL;
PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC glCompressedTextureSubImage2DEXT = NULL;
PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC glCompressedTextureSubImage1DEXT = NULL;
PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glGetCompressedTextureImageEXT = NULL;
PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glCompressedMultiTexImage3DEXT = NULL;
PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glCompressedMultiTexImage2DEXT = NULL;
PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glCompressedMultiTexImage1DEXT = NULL;
PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glCompressedMultiTexSubImage3DEXT = NULL;
PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glCompressedMultiTexSubImage2DEXT = NULL;
PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glCompressedMultiTexSubImage1DEXT = NULL;
PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glGetCompressedMultiTexImageEXT = NULL;
PFNGLNAMEDPROGRAMSTRINGEXTPROC glNamedProgramStringEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC glNamedProgramLocalParameter4dEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC glNamedProgramLocalParameter4dvEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC glNamedProgramLocalParameter4fEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC glNamedProgramLocalParameter4fvEXT = NULL;
PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC glGetNamedProgramLocalParameterdvEXT = NULL;
PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC glGetNamedProgramLocalParameterfvEXT = NULL;
PFNGLGETNAMEDPROGRAMIVEXTPROC glGetNamedProgramivEXT = NULL;
PFNGLGETNAMEDPROGRAMSTRINGEXTPROC glGetNamedProgramStringEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC glNamedProgramLocalParameters4fvEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC glNamedProgramLocalParameterI4iEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC glNamedProgramLocalParameterI4ivEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC glNamedProgramLocalParametersI4ivEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC glNamedProgramLocalParameterI4uiEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC glNamedProgramLocalParameterI4uivEXT = NULL;
PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC glNamedProgramLocalParametersI4uivEXT = NULL;
PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC glGetNamedProgramLocalParameterIivEXT = NULL;
PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC glGetNamedProgramLocalParameterIuivEXT = NULL;
PFNGLTEXTUREPARAMETERIIVEXTPROC glTextureParameterIivEXT = NULL;
PFNGLTEXTUREPARAMETERIUIVEXTPROC glTextureParameterIuivEXT = NULL;
PFNGLGETTEXTUREPARAMETERIIVEXTPROC glGetTextureParameterIivEXT = NULL;
PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glGetTextureParameterIuivEXT = NULL;
PFNGLMULTITEXPARAMETERIIVEXTPROC glMultiTexParameterIivEXT = NULL;
PFNGLMULTITEXPARAMETERIUIVEXTPROC glMultiTexParameterIuivEXT = NULL;
PFNGLGETMULTITEXPARAMETERIIVEXTPROC glGetMultiTexParameterIivEXT = NULL;
PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glGetMultiTexParameterIuivEXT = NULL;
PFNGLPROGRAMUNIFORM1FEXTPROC glProgramUniform1fEXT = NULL;
PFNGLPROGRAMUNIFORM2FEXTPROC glProgramUniform2fEXT = NULL;
PFNGLPROGRAMUNIFORM3FEXTPROC glProgramUniform3fEXT = NULL;
PFNGLPROGRAMUNIFORM4FEXTPROC glProgramUniform4fEXT = NULL;
PFNGLPROGRAMUNIFORM1IEXTPROC glProgramUniform1iEXT = NULL;
PFNGLPROGRAMUNIFORM2IEXTPROC glProgramUniform2iEXT = NULL;
PFNGLPROGRAMUNIFORM3IEXTPROC glProgramUniform3iEXT = NULL;
PFNGLPROGRAMUNIFORM4IEXTPROC glProgramUniform4iEXT = NULL;
PFNGLPROGRAMUNIFORM1FVEXTPROC glProgramUniform1fvEXT = NULL;
PFNGLPROGRAMUNIFORM2FVEXTPROC glProgramUniform2fvEXT = NULL;
PFNGLPROGRAMUNIFORM3FVEXTPROC glProgramUniform3fvEXT = NULL;
PFNGLPROGRAMUNIFORM4FVEXTPROC glProgramUniform4fvEXT = NULL;
PFNGLPROGRAMUNIFORM1IVEXTPROC glProgramUniform1ivEXT = NULL;
PFNGLPROGRAMUNIFORM2IVEXTPROC glProgramUniform2ivEXT = NULL;
PFNGLPROGRAMUNIFORM3IVEXTPROC glProgramUniform3ivEXT = NULL;
PFNGLPROGRAMUNIFORM4IVEXTPROC glProgramUniform4ivEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC glProgramUniformMatrix2fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC glProgramUniformMatrix3fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC glProgramUniformMatrix4fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC glProgramUniformMatrix2x3fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC glProgramUniformMatrix3x2fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC glProgramUniformMatrix2x4fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC glProgramUniformMatrix4x2fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC glProgramUniformMatrix3x4fvEXT = NULL;
PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC glProgramUniformMatrix4x3fvEXT = NULL;
PFNGLPROGRAMUNIFORM1UIEXTPROC glProgramUniform1uiEXT = NULL;
PFNGLPROGRAMUNIFORM2UIEXTPROC glProgramUniform2uiEXT = NULL;
PFNGLPROGRAMUNIFORM3UIEXTPROC glProgramUniform3uiEXT = NULL;
PFNGLPROGRAMUNIFORM4UIEXTPROC glProgramUniform4uiEXT = NULL;
PFNGLPROGRAMUNIFORM1UIVEXTPROC glProgramUniform1uivEXT = NULL;
PFNGLPROGRAMUNIFORM2UIVEXTPROC glProgramUniform2uivEXT = NULL;
PFNGLPROGRAMUNIFORM3UIVEXTPROC glProgramUniform3uivEXT = NULL;
PFNGLPROGRAMUNIFORM4UIVEXTPROC glProgramUniform4uivEXT = NULL;
PFNGLNAMEDBUFFERDATAEXTPROC glNamedBufferDataEXT = NULL;
PFNGLNAMEDBUFFERSUBDATAEXTPROC glNamedBufferSubDataEXT = NULL;
PFNGLMAPNAMEDBUFFEREXTPROC glMapNamedBufferEXT = NULL;
PFNGLUNMAPNAMEDBUFFEREXTPROC glUnmapNamedBufferEXT = NULL;
PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT = NULL;
PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glGetNamedBufferPointervEXT = NULL;
PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT = NULL;
PFNGLTEXTUREBUFFEREXTPROC glTextureBufferEXT = NULL;
PFNGLMULTITEXBUFFEREXTPROC glMultiTexBufferEXT = NULL;
PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glNamedRenderbufferStorageEXT = NULL;
PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glGetNamedRenderbufferParameterivEXT = NULL;
PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC glCheckNamedFramebufferStatusEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC glNamedFramebufferTexture1DEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC glNamedFramebufferTexture2DEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC glNamedFramebufferTexture3DEXT = NULL;
PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glNamedFramebufferRenderbufferEXT = NULL;
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT = NULL;
PFNGLGENERATETEXTUREMIPMAPEXTPROC glGenerateTextureMipmapEXT = NULL;
PFNGLGENERATEMULTITEXMIPMAPEXTPROC glGenerateMultiTexMipmapEXT = NULL;
PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glFramebufferDrawBufferEXT = NULL;
PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glFramebufferDrawBuffersEXT = NULL;
PFNGLFRAMEBUFFERREADBUFFEREXTPROC glFramebufferReadBufferEXT = NULL;
PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC glGetFramebufferParameterivEXT = NULL;
PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glNamedRenderbufferStorageMultisampleEXT = NULL;
PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC glNamedRenderbufferStorageMultisampleCoverageEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC glNamedFramebufferTextureEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glNamedFramebufferTextureLayerEXT = NULL;
PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC glNamedFramebufferTextureFaceEXT = NULL;
PFNGLTEXTURERENDERBUFFEREXTPROC glTextureRenderbufferEXT = NULL;
PFNGLMULTITEXRENDERBUFFEREXTPROC glMultiTexRenderbufferEXT = NULL;

// GL_NV_explicit_multisample
PFNGLGETMULTISAMPLEFVNVPROC glGetMultisamplefvNV = NULL;
PFNGLSAMPLEMASKINDEXEDNVPROC glSampleMaskIndexedNV = NULL;
PFNGLTEXRENDERBUFFERNVPROC glTexRenderbufferNV = NULL;

// GL_NV_transform_feedback2
PFNGLBINDTRANSFORMFEEDBACKNVPROC glBindTransformFeedbackNV = NULL;
PFNGLDELETETRANSFORMFEEDBACKSNVPROC glDeleteTransformFeedbacksNV = NULL;
PFNGLGENTRANSFORMFEEDBACKSNVPROC glGenTransformFeedbacksNV = NULL;
PFNGLISTRANSFORMFEEDBACKNVPROC glIsTransformFeedbackNV = NULL;
PFNGLPAUSETRANSFORMFEEDBACKNVPROC glPauseTransformFeedbackNV = NULL;
PFNGLRESUMETRANSFORMFEEDBACKNVPROC glResumeTransformFeedbackNV = NULL;
PFNGLDRAWTRANSFORMFEEDBACKNVPROC glDrawTransformFeedbackNV = NULL;

// GL_AMD_performance_monitor
PFNGLGETPERFMONITORGROUPSAMDPROC glGetPerfMonitorGroupsAMD = NULL;
PFNGLGETPERFMONITORCOUNTERSAMDPROC glGetPerfMonitorCountersAMD = NULL;
PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glGetPerfMonitorGroupStringAMD = NULL;
PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glGetPerfMonitorCounterStringAMD = NULL;
PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glGetPerfMonitorCounterInfoAMD = NULL;
PFNGLGENPERFMONITORSAMDPROC glGenPerfMonitorsAMD = NULL;
PFNGLDELETEPERFMONITORSAMDPROC glDeletePerfMonitorsAMD = NULL;
PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glSelectPerfMonitorCountersAMD = NULL;
PFNGLBEGINPERFMONITORAMDPROC glBeginPerfMonitorAMD = NULL;
PFNGLENDPERFMONITORAMDPROC glEndPerfMonitorAMD = NULL;
PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glGetPerfMonitorCounterDataAMD = NULL;

// GL_AMD_vertex_shader_tesselator
PFNGLTESSELLATIONFACTORAMDPROC glTessellationFactorAMD = NULL;
PFNGLTESSELLATIONMODEAMDPROC glTessellationModeAMD = NULL;

// GL_EXT_provoking_vertex
PFNGLPROVOKINGVERTEXEXTPROC glProvokingVertexEXT = NULL;

// GL_AMD_draw_buffers_blend
PFNGLBLENDFUNCINDEXEDAMDPROC glBlendFuncIndexedAMD = NULL;
PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC glBlendFuncSeparateIndexedAMD = NULL;
PFNGLBLENDEQUATIONINDEXEDAMDPROC glBlendEquationIndexedAMD = NULL;
PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC glBlendEquationSeparateIndexedAMD = NULL;

// GL_APPLE_texture_range
PFNGLTEXTURERANGEAPPLEPROC glTextureRangeAPPLE = NULL;
PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC glGetTexParameterPointervAPPLE = NULL;

// GL_APPLE_vertex_program_evaluators
PFNGLENABLEVERTEXATTRIBAPPLEPROC glEnableVertexAttribAPPLE = NULL;
PFNGLDISABLEVERTEXATTRIBAPPLEPROC glDisableVertexAttribAPPLE = NULL;
PFNGLISVERTEXATTRIBENABLEDAPPLEPROC glIsVertexAttribEnabledAPPLE = NULL;
PFNGLMAPVERTEXATTRIB1DAPPLEPROC glMapVertexAttrib1dAPPLE = NULL;
PFNGLMAPVERTEXATTRIB1FAPPLEPROC glMapVertexAttrib1fAPPLE = NULL;
PFNGLMAPVERTEXATTRIB2DAPPLEPROC glMapVertexAttrib2dAPPLE = NULL;
PFNGLMAPVERTEXATTRIB2FAPPLEPROC glMapVertexAttrib2fAPPLE = NULL;

// GL_APPLE_object_purgeable
PFNGLOBJECTPURGEABLEAPPLEPROC glObjectPurgeableAPPLE = NULL;
PFNGLOBJECTUNPURGEABLEAPPLEPROC glObjectUnpurgeableAPPLE = NULL;
PFNGLGETOBJECTPARAMETERIVAPPLEPROC glGetObjectParameterivAPPLE = NULL;

// GL_NV_video_capture
PFNGLBEGINVIDEOCAPTURENVPROC glBeginVideoCaptureNV = NULL;
PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC glBindVideoCaptureStreamBufferNV = NULL;
PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC glBindVideoCaptureStreamTextureNV = NULL;
PFNGLENDVIDEOCAPTURENVPROC glEndVideoCaptureNV = NULL;
PFNGLGETVIDEOCAPTUREIVNVPROC glGetVideoCaptureivNV = NULL;
PFNGLGETVIDEOCAPTURESTREAMIVNVPROC glGetVideoCaptureStreamivNV = NULL;
PFNGLGETVIDEOCAPTURESTREAMFVNVPROC glGetVideoCaptureStreamfvNV = NULL;
PFNGLGETVIDEOCAPTURESTREAMDVNVPROC glGetVideoCaptureStreamdvNV = NULL;
PFNGLVIDEOCAPTURENVPROC glVideoCaptureNV = NULL;
PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC glVideoCaptureStreamParameterivNV = NULL;
PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC glVideoCaptureStreamParameterfvNV = NULL;
PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC glVideoCaptureStreamParameterdvNV = NULL;

// GL_NV_copy_image
PFNGLCOPYIMAGESUBDATANVPROC glCopyImageSubDataNV = NULL;

// GL_EXT_separate_shader_objects
PFNGLUSESHADERPROGRAMEXTPROC glUseShaderProgramEXT = NULL;
PFNGLACTIVEPROGRAMEXTPROC glActiveProgramEXT = NULL;
PFNGLCREATESHADERPROGRAMEXTPROC glCreateShaderProgramEXT = NULL;

// GL_NV_shader_buffer_load
PFNGLMAKEBUFFERRESIDENTNVPROC glMakeBufferResidentNV = NULL;
PFNGLMAKEBUFFERNONRESIDENTNVPROC glMakeBufferNonResidentNV = NULL;
PFNGLISBUFFERRESIDENTNVPROC glIsBufferResidentNV = NULL;
PFNGLNAMEDMAKEBUFFERRESIDENTNVPROC glNamedMakeBufferResidentNV = NULL;
PFNGLNAMEDMAKEBUFFERNONRESIDENTNVPROC glNamedMakeBufferNonResidentNV = NULL;
PFNGLISNAMEDBUFFERRESIDENTNVPROC glIsNamedBufferResidentNV = NULL;
PFNGLGETBUFFERPARAMETERUI64VNVPROC glGetBufferParameterui64vNV = NULL;
PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC glGetNamedBufferParameterui64vNV = NULL;
PFNGLGETINTEGERUI64VNVPROC glGetIntegerui64vNV = NULL;
PFNGLUNIFORMUI64NVPROC glUniformui64NV = NULL;
PFNGLUNIFORMUI64VNVPROC glUniformui64vNV = NULL;
PFNGLGETUNIFORMUI64VNVPROC glGetUniformui64vNV = NULL;
PFNGLPROGRAMUNIFORMUI64NVPROC glProgramUniformui64NV = NULL;
PFNGLPROGRAMUNIFORMUI64VNVPROC glProgramUniformui64vNV = NULL;

// GL_NV_vertex_buffer_unified_memory
PFNGLBUFFERADDRESSRANGENVPROC glBufferAddressRangeNV = NULL;
PFNGLVERTEXFORMATNVPROC glVertexFormatNV = NULL;
PFNGLNORMALFORMATNVPROC glNormalFormatNV = NULL;
PFNGLCOLORFORMATNVPROC glColorFormatNV = NULL;
PFNGLINDEXFORMATNVPROC glIndexFormatNV = NULL;
PFNGLTEXCOORDFORMATNVPROC glTexCoordFormatNV = NULL;
PFNGLEDGEFLAGFORMATNVPROC glEdgeFlagFormatNV = NULL;
PFNGLSECONDARYCOLORFORMATNVPROC glSecondaryColorFormatNV = NULL;
PFNGLFOGCOORDFORMATNVPROC glFogCoordFormatNV = NULL;
PFNGLVERTEXATTRIBFORMATNVPROC glVertexAttribFormatNV = NULL;
PFNGLVERTEXATTRIBIFORMATNVPROC glVertexAttribIFormatNV = NULL;
PFNGLGETINTEGERUI64I_VNVPROC glGetIntegerui64i_vNV = NULL;

// GL_NV_texture_barrier
PFNGLTEXTUREBARRIERNVPROC glTextureBarrierNV = NULL;

// WGL_ARB_buffer_region
PFNWGLCREATEBUFFERREGIONARBPROC wglCreateBufferRegionARB = NULL;
PFNWGLDELETEBUFFERREGIONARBPROC wglDeleteBufferRegionARB = NULL;
PFNWGLSAVEBUFFERREGIONARBPROC wglSaveBufferRegionARB = NULL;
PFNWGLRESTOREBUFFERREGIONARBPROC wglRestoreBufferRegionARB = NULL;

// WGL_ARB_extensions_string
PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB = NULL;

// WGL_ARB_pixel_format
PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB = NULL;
PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB = NULL;
PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB = NULL;

// WGL_ARB_make_current_read
PFNWGLMAKECONTEXTCURRENTARBPROC wglMakeContextCurrentARB = NULL;
PFNWGLGETCURRENTREADDCARBPROC wglGetCurrentReadDCARB = NULL;

// WGL_ARB_pbuffer
PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB = NULL;
PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB = NULL;
PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB = NULL;
PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB = NULL;
PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB = NULL;

// WGL_ARB_render_texture
PFNWGLBINDTEXIMAGEARBPROC wglBindTexImageARB = NULL;
PFNWGLRELEASETEXIMAGEARBPROC wglReleaseTexImageARB = NULL;
PFNWGLSETPBUFFERATTRIBARBPROC wglSetPbufferAttribARB = NULL;

// WGL_ARB_create_context
PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL;

// WGL_EXT_display_color_table
PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC wglCreateDisplayColorTableEXT = NULL;
PFNWGLLOADDISPLAYCOLORTABLEEXTPROC wglLoadDisplayColorTableEXT = NULL;
PFNWGLBINDDISPLAYCOLORTABLEEXTPROC wglBindDisplayColorTableEXT = NULL;
PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC wglDestroyDisplayColorTableEXT = NULL;

// WGL_EXT_extensions_string
PFNWGLGETEXTENSIONSSTRINGEXTPROC wglGetExtensionsStringEXT = NULL;

// WGL_EXT_make_current_read
PFNWGLMAKECONTEXTCURRENTEXTPROC wglMakeContextCurrentEXT = NULL;
PFNWGLGETCURRENTREADDCEXTPROC wglGetCurrentReadDCEXT = NULL;

// WGL_EXT_pbuffer
PFNWGLCREATEPBUFFEREXTPROC wglCreatePbufferEXT = NULL;
PFNWGLGETPBUFFERDCEXTPROC wglGetPbufferDCEXT = NULL;
PFNWGLRELEASEPBUFFERDCEXTPROC wglReleasePbufferDCEXT = NULL;
PFNWGLDESTROYPBUFFEREXTPROC wglDestroyPbufferEXT = NULL;
PFNWGLQUERYPBUFFEREXTPROC wglQueryPbufferEXT = NULL;

// WGL_EXT_pixel_format
PFNWGLGETPIXELFORMATATTRIBIVEXTPROC wglGetPixelFormatAttribivEXT = NULL;
PFNWGLGETPIXELFORMATATTRIBFVEXTPROC wglGetPixelFormatAttribfvEXT = NULL;
PFNWGLCHOOSEPIXELFORMATEXTPROC wglChoosePixelFormatEXT = NULL;

// WGL_EXT_swap_control
PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL;
PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT = NULL;

// WGL_NV_vertex_array_range
PFNWGLALLOCATEMEMORYNVPROC wglAllocateMemoryNV = NULL;
PFNWGLFREEMEMORYNVPROC wglFreeMemoryNV = NULL;

// WGL_OML_sync_control
PFNWGLGETSYNCVALUESOMLPROC wglGetSyncValuesOML = NULL;
PFNWGLGETMSCRATEOMLPROC wglGetMscRateOML = NULL;
PFNWGLSWAPBUFFERSMSCOMLPROC wglSwapBuffersMscOML = NULL;
PFNWGLSWAPLAYERBUFFERSMSCOMLPROC wglSwapLayerBuffersMscOML = NULL;
PFNWGLWAITFORMSCOMLPROC wglWaitForMscOML = NULL;
PFNWGLWAITFORSBCOMLPROC wglWaitForSbcOML = NULL;

// WGL_I3D_digital_video_control
PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC wglGetDigitalVideoParametersI3D = NULL;
PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC wglSetDigitalVideoParametersI3D = NULL;

// WGL_I3D_gamma
PFNWGLGETGAMMATABLEPARAMETERSI3DPROC wglGetGammaTableParametersI3D = NULL;
PFNWGLSETGAMMATABLEPARAMETERSI3DPROC wglSetGammaTableParametersI3D = NULL;
PFNWGLGETGAMMATABLEI3DPROC wglGetGammaTableI3D = NULL;
PFNWGLSETGAMMATABLEI3DPROC wglSetGammaTableI3D = NULL;

// WGL_I3D_genlock
PFNWGLENABLEGENLOCKI3DPROC wglEnableGenlockI3D = NULL;
PFNWGLDISABLEGENLOCKI3DPROC wglDisableGenlockI3D = NULL;
PFNWGLISENABLEDGENLOCKI3DPROC wglIsEnabledGenlockI3D = NULL;
PFNWGLGENLOCKSOURCEI3DPROC wglGenlockSourceI3D = NULL;
PFNWGLGETGENLOCKSOURCEI3DPROC wglGetGenlockSourceI3D = NULL;
PFNWGLGENLOCKSOURCEEDGEI3DPROC wglGenlockSourceEdgeI3D = NULL;
PFNWGLGETGENLOCKSOURCEEDGEI3DPROC wglGetGenlockSourceEdgeI3D = NULL;
PFNWGLGENLOCKSAMPLERATEI3DPROC wglGenlockSampleRateI3D = NULL;
PFNWGLGETGENLOCKSAMPLERATEI3DPROC wglGetGenlockSampleRateI3D = NULL;
PFNWGLGENLOCKSOURCEDELAYI3DPROC wglGenlockSourceDelayI3D = NULL;
PFNWGLGETGENLOCKSOURCEDELAYI3DPROC wglGetGenlockSourceDelayI3D = NULL;
PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC wglQueryGenlockMaxSourceDelayI3D = NULL;

// WGL_I3D_image_buffer
PFNWGLCREATEIMAGEBUFFERI3DPROC wglCreateImageBufferI3D = NULL;
PFNWGLDESTROYIMAGEBUFFERI3DPROC wglDestroyImageBufferI3D = NULL;
PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC wglAssociateImageBufferEventsI3D = NULL;
PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC wglReleaseImageBufferEventsI3D = NULL;

// WGL_I3D_swap_frame_lock
PFNWGLENABLEFRAMELOCKI3DPROC wglEnableFrameLockI3D = NULL;
PFNWGLDISABLEFRAMELOCKI3DPROC wglDisableFrameLockI3D = NULL;
PFNWGLISENABLEDFRAMELOCKI3DPROC wglIsEnabledFrameLockI3D = NULL;
PFNWGLQUERYFRAMELOCKMASTERI3DPROC wglQueryFrameLockMasterI3D = NULL;

// WGL_I3D_swap_frame_usage
PFNWGLGETFRAMEUSAGEI3DPROC wglGetFrameUsageI3D = NULL;
PFNWGLBEGINFRAMETRACKINGI3DPROC wglBeginFrameTrackingI3D = NULL;
PFNWGLENDFRAMETRACKINGI3DPROC wglEndFrameTrackingI3D = NULL;
PFNWGLQUERYFRAMETRACKINGI3DPROC wglQueryFrameTrackingI3D = NULL;

// WGL_3DL_stereo_control
PFNWGLSETSTEREOEMITTERSTATE3DLPROC wglSetStereoEmitterState3DL = NULL;

// WGL_NV_present_video
PFNWGLENUMERATEVIDEODEVICESNVPROC wglEnumerateVideoDevicesNV = NULL;
PFNWGLBINDVIDEODEVICENVPROC wglBindVideoDeviceNV = NULL;
PFNWGLQUERYCURRENTCONTEXTNVPROC wglQueryCurrentContextNV = NULL;

// WGL_NV_video_output
PFNWGLGETVIDEODEVICENVPROC wglGetVideoDeviceNV = NULL;
PFNWGLRELEASEVIDEODEVICENVPROC wglReleaseVideoDeviceNV = NULL;
PFNWGLBINDVIDEOIMAGENVPROC wglBindVideoImageNV = NULL;
PFNWGLRELEASEVIDEOIMAGENVPROC wglReleaseVideoImageNV = NULL;
PFNWGLSENDPBUFFERTOVIDEONVPROC wglSendPbufferToVideoNV = NULL;
PFNWGLGETVIDEOINFONVPROC wglGetVideoInfoNV = NULL;

// WGL_NV_swap_group
PFNWGLJOINSWAPGROUPNVPROC wglJoinSwapGroupNV = NULL;
PFNWGLBINDSWAPBARRIERNVPROC wglBindSwapBarrierNV = NULL;
PFNWGLQUERYSWAPGROUPNVPROC wglQuerySwapGroupNV = NULL;
PFNWGLQUERYMAXSWAPGROUPSNVPROC wglQueryMaxSwapGroupsNV = NULL;
PFNWGLQUERYFRAMECOUNTNVPROC wglQueryFrameCountNV = NULL;
PFNWGLRESETFRAMECOUNTNVPROC wglResetFrameCountNV = NULL;

// WGL_NV_gpu_affinity
PFNWGLENUMGPUSNVPROC wglEnumGpusNV = NULL;
PFNWGLENUMGPUDEVICESNVPROC wglEnumGpuDevicesNV = NULL;
PFNWGLCREATEAFFINITYDCNVPROC wglCreateAffinityDCNV = NULL;
PFNWGLENUMGPUSFROMAFFINITYDCNVPROC wglEnumGpusFromAffinityDCNV = NULL;
PFNWGLDELETEDCNVPROC wglDeleteDCNV = NULL;

// WGL_AMD_gpu_association
PFNWGLGETGPUIDSAMDPROC wglGetGPUIDsAMD = NULL;
PFNWGLGETGPUINFOAMDPROC wglGetGPUInfoAMD = NULL;
PFNWGLGETCONTEXTGPUIDAMDPROC wglGetContextGPUIDAMD = NULL;
PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC wglCreateAssociatedContextAMD = NULL;
PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC wglCreateAssociatedContextAttribsAMD = NULL;
PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC wglDeleteAssociatedContextAMD = NULL;
PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC wglMakeAssociatedContextCurrentAMD = NULL;
PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC wglGetCurrentAssociatedContextAMD = NULL;
PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC wglBlitContextFramebufferAMD = NULL;

HMODULE LibHandle = 0;
bool isInit = false;

PROC glgGetProcAddress(const char *procName)
{
	return wglGetProcAddress(procName);
}

bool glgInit()
{
	if (isInit)
		return false;

	LibHandle = LoadLibraryA("OpenGL32.dll");
	if (LibHandle)
	{
		isInit = true;
		return true;
	}

	return false;
}

void glgDeinit()
{
	if (!isInit) return;
	FreeLibrary(LibHandle);
}

bool glgInitExts()
{
	if (!isInit)
		return false;

	// GL_VERSION_1_2
	glBlendColor = (PFNGLBLENDCOLORPROC) glgGetProcAddress("glBlendColor");
	glBlendEquation = (PFNGLBLENDEQUATIONPROC) glgGetProcAddress("glBlendEquation");
	glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) glgGetProcAddress("glDrawRangeElements");
	glTexImage3D = (PFNGLTEXIMAGE3DPROC) glgGetProcAddress("glTexImage3D");
	glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) glgGetProcAddress("glTexSubImage3D");
	glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) glgGetProcAddress("glCopyTexSubImage3D");

	// GL_VERSION_1_2_DEPRECATED
	glColorTable = (PFNGLCOLORTABLEPROC) glgGetProcAddress("glColorTable");
	glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC) glgGetProcAddress("glColorTableParameterfv");
	glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC) glgGetProcAddress("glColorTableParameteriv");
	glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC) glgGetProcAddress("glCopyColorTable");
	glGetColorTable = (PFNGLGETCOLORTABLEPROC) glgGetProcAddress("glGetColorTable");
	glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC) glgGetProcAddress("glGetColorTableParameterfv");
	glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC) glgGetProcAddress("glGetColorTableParameteriv");
	glColorSubTable = (PFNGLCOLORSUBTABLEPROC) glgGetProcAddress("glColorSubTable");
	glCopyColorSubTable = (PFNGLCOPYCOLORSUBTABLEPROC) glgGetProcAddress("glCopyColorSubTable");
	glConvolutionFilter1D = (PFNGLCONVOLUTIONFILTER1DPROC) glgGetProcAddress("glConvolutionFilter1D");
	glConvolutionFilter2D = (PFNGLCONVOLUTIONFILTER2DPROC) glgGetProcAddress("glConvolutionFilter2D");
	glConvolutionParameterf = (PFNGLCONVOLUTIONPARAMETERFPROC) glgGetProcAddress("glConvolutionParameterf");
	glConvolutionParameterfv = (PFNGLCONVOLUTIONPARAMETERFVPROC) glgGetProcAddress("glConvolutionParameterfv");
	glConvolutionParameteri = (PFNGLCONVOLUTIONPARAMETERIPROC) glgGetProcAddress("glConvolutionParameteri");
	glConvolutionParameteriv = (PFNGLCONVOLUTIONPARAMETERIVPROC) glgGetProcAddress("glConvolutionParameteriv");
	glCopyConvolutionFilter1D = (PFNGLCOPYCONVOLUTIONFILTER1DPROC) glgGetProcAddress("glCopyConvolutionFilter1D");
	glCopyConvolutionFilter2D = (PFNGLCOPYCONVOLUTIONFILTER2DPROC) glgGetProcAddress("glCopyConvolutionFilter2D");
	glGetConvolutionFilter = (PFNGLGETCONVOLUTIONFILTERPROC) glgGetProcAddress("glGetConvolutionFilter");
	glGetConvolutionParameterfv = (PFNGLGETCONVOLUTIONPARAMETERFVPROC) glgGetProcAddress("glGetConvolutionParameterfv");
	glGetConvolutionParameteriv = (PFNGLGETCONVOLUTIONPARAMETERIVPROC) glgGetProcAddress("glGetConvolutionParameteriv");
	glGetSeparableFilter = (PFNGLGETSEPARABLEFILTERPROC) glgGetProcAddress("glGetSeparableFilter");
	glSeparableFilter2D = (PFNGLSEPARABLEFILTER2DPROC) glgGetProcAddress("glSeparableFilter2D");
	glGetHistogram = (PFNGLGETHISTOGRAMPROC) glgGetProcAddress("glGetHistogram");
	glGetHistogramParameterfv = (PFNGLGETHISTOGRAMPARAMETERFVPROC) glgGetProcAddress("glGetHistogramParameterfv");
	glGetHistogramParameteriv = (PFNGLGETHISTOGRAMPARAMETERIVPROC) glgGetProcAddress("glGetHistogramParameteriv");
	glGetMinmax = (PFNGLGETMINMAXPROC) glgGetProcAddress("glGetMinmax");
	glGetMinmaxParameterfv = (PFNGLGETMINMAXPARAMETERFVPROC) glgGetProcAddress("glGetMinmaxParameterfv");
	glGetMinmaxParameteriv = (PFNGLGETMINMAXPARAMETERIVPROC) glgGetProcAddress("glGetMinmaxParameteriv");
	glHistogram = (PFNGLHISTOGRAMPROC) glgGetProcAddress("glHistogram");
	glMinmax = (PFNGLMINMAXPROC) glgGetProcAddress("glMinmax");
	glResetHistogram = (PFNGLRESETHISTOGRAMPROC) glgGetProcAddress("glResetHistogram");
	glResetMinmax = (PFNGLRESETMINMAXPROC) glgGetProcAddress("glResetMinmax");

	// GL_VERSION_1_3
	glActiveTexture = (PFNGLACTIVETEXTUREPROC) glgGetProcAddress("glActiveTexture");
	glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) glgGetProcAddress("glSampleCoverage");
	glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) glgGetProcAddress("glCompressedTexImage3D");
	glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) glgGetProcAddress("glCompressedTexImage2D");
	glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) glgGetProcAddress("glCompressedTexImage1D");
	glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) glgGetProcAddress("glCompressedTexSubImage3D");
	glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) glgGetProcAddress("glCompressedTexSubImage2D");
	glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) glgGetProcAddress("glCompressedTexSubImage1D");
	glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) glgGetProcAddress("glGetCompressedTexImage");

	// GL_VERSION_1_3_DEPRECATED
	glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC) glgGetProcAddress("glClientActiveTexture");
	glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC) glgGetProcAddress("glMultiTexCoord1d");
	glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC) glgGetProcAddress("glMultiTexCoord1dv");
	glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC) glgGetProcAddress("glMultiTexCoord1f");
	glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC) glgGetProcAddress("glMultiTexCoord1fv");
	glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC) glgGetProcAddress("glMultiTexCoord1i");
	glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC) glgGetProcAddress("glMultiTexCoord1iv");
	glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC) glgGetProcAddress("glMultiTexCoord1s");
	glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC) glgGetProcAddress("glMultiTexCoord1sv");
	glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC) glgGetProcAddress("glMultiTexCoord2d");
	glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC) glgGetProcAddress("glMultiTexCoord2dv");
	glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC) glgGetProcAddress("glMultiTexCoord2f");
	glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC) glgGetProcAddress("glMultiTexCoord2fv");
	glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC) glgGetProcAddress("glMultiTexCoord2i");
	glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC) glgGetProcAddress("glMultiTexCoord2iv");
	glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC) glgGetProcAddress("glMultiTexCoord2s");
	glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC) glgGetProcAddress("glMultiTexCoord2sv");
	glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC) glgGetProcAddress("glMultiTexCoord3d");
	glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC) glgGetProcAddress("glMultiTexCoord3dv");
	glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC) glgGetProcAddress("glMultiTexCoord3f");
	glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC) glgGetProcAddress("glMultiTexCoord3fv");
	glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC) glgGetProcAddress("glMultiTexCoord3i");
	glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC) glgGetProcAddress("glMultiTexCoord3iv");
	glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC) glgGetProcAddress("glMultiTexCoord3s");
	glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC) glgGetProcAddress("glMultiTexCoord3sv");
	glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC) glgGetProcAddress("glMultiTexCoord4d");
	glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC) glgGetProcAddress("glMultiTexCoord4dv");
	glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC) glgGetProcAddress("glMultiTexCoord4f");
	glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC) glgGetProcAddress("glMultiTexCoord4fv");
	glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC) glgGetProcAddress("glMultiTexCoord4i");
	glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC) glgGetProcAddress("glMultiTexCoord4iv");
	glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC) glgGetProcAddress("glMultiTexCoord4s");
	glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC) glgGetProcAddress("glMultiTexCoord4sv");
	glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC) glgGetProcAddress("glLoadTransposeMatrixf");
	glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC) glgGetProcAddress("glLoadTransposeMatrixd");
	glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC) glgGetProcAddress("glMultTransposeMatrixf");
	glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC) glgGetProcAddress("glMultTransposeMatrixd");

	// GL_VERSION_1_4
	glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) glgGetProcAddress("glBlendFuncSeparate");
	glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) glgGetProcAddress("glMultiDrawArrays");
	glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) glgGetProcAddress("glMultiDrawElements");
	glPointParameterf = (PFNGLPOINTPARAMETERFPROC) glgGetProcAddress("glPointParameterf");
	glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC) glgGetProcAddress("glPointParameterfv");
	glPointParameteri = (PFNGLPOINTPARAMETERIPROC) glgGetProcAddress("glPointParameteri");
	glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC) glgGetProcAddress("glPointParameteriv");

	// GL_VERSION_1_4_DEPRECATED
	glFogCoordf = (PFNGLFOGCOORDFPROC) glgGetProcAddress("glFogCoordf");
	glFogCoordfv = (PFNGLFOGCOORDFVPROC) glgGetProcAddress("glFogCoordfv");
	glFogCoordd = (PFNGLFOGCOORDDPROC) glgGetProcAddress("glFogCoordd");
	glFogCoorddv = (PFNGLFOGCOORDDVPROC) glgGetProcAddress("glFogCoorddv");
	glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC) glgGetProcAddress("glFogCoordPointer");
	glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC) glgGetProcAddress("glSecondaryColor3b");
	glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC) glgGetProcAddress("glSecondaryColor3bv");
	glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC) glgGetProcAddress("glSecondaryColor3d");
	glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC) glgGetProcAddress("glSecondaryColor3dv");
	glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC) glgGetProcAddress("glSecondaryColor3f");
	glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC) glgGetProcAddress("glSecondaryColor3fv");
	glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC) glgGetProcAddress("glSecondaryColor3i");
	glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC) glgGetProcAddress("glSecondaryColor3iv");
	glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC) glgGetProcAddress("glSecondaryColor3s");
	glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC) glgGetProcAddress("glSecondaryColor3sv");
	glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC) glgGetProcAddress("glSecondaryColor3ub");
	glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC) glgGetProcAddress("glSecondaryColor3ubv");
	glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC) glgGetProcAddress("glSecondaryColor3ui");
	glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC) glgGetProcAddress("glSecondaryColor3uiv");
	glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC) glgGetProcAddress("glSecondaryColor3us");
	glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC) glgGetProcAddress("glSecondaryColor3usv");
	glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC) glgGetProcAddress("glSecondaryColorPointer");
	glWindowPos2d = (PFNGLWINDOWPOS2DPROC) glgGetProcAddress("glWindowPos2d");
	glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC) glgGetProcAddress("glWindowPos2dv");
	glWindowPos2f = (PFNGLWINDOWPOS2FPROC) glgGetProcAddress("glWindowPos2f");
	glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC) glgGetProcAddress("glWindowPos2fv");
	glWindowPos2i = (PFNGLWINDOWPOS2IPROC) glgGetProcAddress("glWindowPos2i");
	glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC) glgGetProcAddress("glWindowPos2iv");
	glWindowPos2s = (PFNGLWINDOWPOS2SPROC) glgGetProcAddress("glWindowPos2s");
	glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC) glgGetProcAddress("glWindowPos2sv");
	glWindowPos3d = (PFNGLWINDOWPOS3DPROC) glgGetProcAddress("glWindowPos3d");
	glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC) glgGetProcAddress("glWindowPos3dv");
	glWindowPos3f = (PFNGLWINDOWPOS3FPROC) glgGetProcAddress("glWindowPos3f");
	glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC) glgGetProcAddress("glWindowPos3fv");
	glWindowPos3i = (PFNGLWINDOWPOS3IPROC) glgGetProcAddress("glWindowPos3i");
	glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC) glgGetProcAddress("glWindowPos3iv");
	glWindowPos3s = (PFNGLWINDOWPOS3SPROC) glgGetProcAddress("glWindowPos3s");
	glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC) glgGetProcAddress("glWindowPos3sv");

	// GL_VERSION_1_5
	glGenQueries = (PFNGLGENQUERIESPROC) glgGetProcAddress("glGenQueries");
	glDeleteQueries = (PFNGLDELETEQUERIESPROC) glgGetProcAddress("glDeleteQueries");
	glIsQuery = (PFNGLISQUERYPROC) glgGetProcAddress("glIsQuery");
	glBeginQuery = (PFNGLBEGINQUERYPROC) glgGetProcAddress("glBeginQuery");
	glEndQuery = (PFNGLENDQUERYPROC) glgGetProcAddress("glEndQuery");
	glGetQueryiv = (PFNGLGETQUERYIVPROC) glgGetProcAddress("glGetQueryiv");
	glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) glgGetProcAddress("glGetQueryObjectiv");
	glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) glgGetProcAddress("glGetQueryObjectuiv");
	glBindBuffer = (PFNGLBINDBUFFERPROC) glgGetProcAddress("glBindBuffer");
	glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) glgGetProcAddress("glDeleteBuffers");
	glGenBuffers = (PFNGLGENBUFFERSPROC) glgGetProcAddress("glGenBuffers");
	glIsBuffer = (PFNGLISBUFFERPROC) glgGetProcAddress("glIsBuffer");
	glBufferData = (PFNGLBUFFERDATAPROC) glgGetProcAddress("glBufferData");
	glBufferSubData = (PFNGLBUFFERSUBDATAPROC) glgGetProcAddress("glBufferSubData");
	glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) glgGetProcAddress("glGetBufferSubData");
	glMapBuffer = (PFNGLMAPBUFFERPROC) glgGetProcAddress("glMapBuffer");
	glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) glgGetProcAddress("glUnmapBuffer");
	glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) glgGetProcAddress("glGetBufferParameteriv");
	glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) glgGetProcAddress("glGetBufferPointerv");

	// GL_VERSION_2_0
	glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) glgGetProcAddress("glBlendEquationSeparate");
	glDrawBuffers = (PFNGLDRAWBUFFERSPROC) glgGetProcAddress("glDrawBuffers");
	glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) glgGetProcAddress("glStencilOpSeparate");
	glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) glgGetProcAddress("glStencilFuncSeparate");
	glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) glgGetProcAddress("glStencilMaskSeparate");
	glAttachShader = (PFNGLATTACHSHADERPROC) glgGetProcAddress("glAttachShader");
	glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) glgGetProcAddress("glBindAttribLocation");
	glCompileShader = (PFNGLCOMPILESHADERPROC) glgGetProcAddress("glCompileShader");
	glCreateProgram = (PFNGLCREATEPROGRAMPROC) glgGetProcAddress("glCreateProgram");
	glCreateShader = (PFNGLCREATESHADERPROC) glgGetProcAddress("glCreateShader");
	glDeleteProgram = (PFNGLDELETEPROGRAMPROC) glgGetProcAddress("glDeleteProgram");
	glDeleteShader = (PFNGLDELETESHADERPROC) glgGetProcAddress("glDeleteShader");
	glDetachShader = (PFNGLDETACHSHADERPROC) glgGetProcAddress("glDetachShader");
	glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) glgGetProcAddress("glDisableVertexAttribArray");
	glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) glgGetProcAddress("glEnableVertexAttribArray");
	glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) glgGetProcAddress("glGetActiveAttrib");
	glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) glgGetProcAddress("glGetActiveUniform");
	glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) glgGetProcAddress("glGetAttachedShaders");
	glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) glgGetProcAddress("glGetAttribLocation");
	glGetProgramiv = (PFNGLGETPROGRAMIVPROC) glgGetProcAddress("glGetProgramiv");
	glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) glgGetProcAddress("glGetProgramInfoLog");
	glGetShaderiv = (PFNGLGETSHADERIVPROC) glgGetProcAddress("glGetShaderiv");
	glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) glgGetProcAddress("glGetShaderInfoLog");
	glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) glgGetProcAddress("glGetShaderSource");
	glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) glgGetProcAddress("glGetUniformLocation");
	glGetUniformfv = (PFNGLGETUNIFORMFVPROC) glgGetProcAddress("glGetUniformfv");
	glGetUniformiv = (PFNGLGETUNIFORMIVPROC) glgGetProcAddress("glGetUniformiv");
	glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) glgGetProcAddress("glGetVertexAttribdv");
	glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) glgGetProcAddress("glGetVertexAttribfv");
	glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) glgGetProcAddress("glGetVertexAttribiv");
	glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) glgGetProcAddress("glGetVertexAttribPointerv");
	glIsProgram = (PFNGLISPROGRAMPROC) glgGetProcAddress("glIsProgram");
	glIsShader = (PFNGLISSHADERPROC) glgGetProcAddress("glIsShader");
	glLinkProgram = (PFNGLLINKPROGRAMPROC) glgGetProcAddress("glLinkProgram");
	glShaderSource = (PFNGLSHADERSOURCEPROC) glgGetProcAddress("glShaderSource");
	glUseProgram = (PFNGLUSEPROGRAMPROC) glgGetProcAddress("glUseProgram");
	glUniform1f = (PFNGLUNIFORM1FPROC) glgGetProcAddress("glUniform1f");
	glUniform2f = (PFNGLUNIFORM2FPROC) glgGetProcAddress("glUniform2f");
	glUniform3f = (PFNGLUNIFORM3FPROC) glgGetProcAddress("glUniform3f");
	glUniform4f = (PFNGLUNIFORM4FPROC) glgGetProcAddress("glUniform4f");
	glUniform1i = (PFNGLUNIFORM1IPROC) glgGetProcAddress("glUniform1i");
	glUniform2i = (PFNGLUNIFORM2IPROC) glgGetProcAddress("glUniform2i");
	glUniform3i = (PFNGLUNIFORM3IPROC) glgGetProcAddress("glUniform3i");
	glUniform4i = (PFNGLUNIFORM4IPROC) glgGetProcAddress("glUniform4i");
	glUniform1fv = (PFNGLUNIFORM1FVPROC) glgGetProcAddress("glUniform1fv");
	glUniform2fv = (PFNGLUNIFORM2FVPROC) glgGetProcAddress("glUniform2fv");
	glUniform3fv = (PFNGLUNIFORM3FVPROC) glgGetProcAddress("glUniform3fv");
	glUniform4fv = (PFNGLUNIFORM4FVPROC) glgGetProcAddress("glUniform4fv");
	glUniform1iv = (PFNGLUNIFORM1IVPROC) glgGetProcAddress("glUniform1iv");
	glUniform2iv = (PFNGLUNIFORM2IVPROC) glgGetProcAddress("glUniform2iv");
	glUniform3iv = (PFNGLUNIFORM3IVPROC) glgGetProcAddress("glUniform3iv");
	glUniform4iv = (PFNGLUNIFORM4IVPROC) glgGetProcAddress("glUniform4iv");
	glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) glgGetProcAddress("glUniformMatrix2fv");
	glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) glgGetProcAddress("glUniformMatrix3fv");
	glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) glgGetProcAddress("glUniformMatrix4fv");
	glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) glgGetProcAddress("glValidateProgram");
	glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) glgGetProcAddress("glVertexAttrib1d");
	glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) glgGetProcAddress("glVertexAttrib1dv");
	glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) glgGetProcAddress("glVertexAttrib1f");
	glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) glgGetProcAddress("glVertexAttrib1fv");
	glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) glgGetProcAddress("glVertexAttrib1s");
	glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) glgGetProcAddress("glVertexAttrib1sv");
	glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) glgGetProcAddress("glVertexAttrib2d");
	glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) glgGetProcAddress("glVertexAttrib2dv");
	glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) glgGetProcAddress("glVertexAttrib2f");
	glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) glgGetProcAddress("glVertexAttrib2fv");
	glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) glgGetProcAddress("glVertexAttrib2s");
	glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) glgGetProcAddress("glVertexAttrib2sv");
	glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) glgGetProcAddress("glVertexAttrib3d");
	glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) glgGetProcAddress("glVertexAttrib3dv");
	glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) glgGetProcAddress("glVertexAttrib3f");
	glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) glgGetProcAddress("glVertexAttrib3fv");
	glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) glgGetProcAddress("glVertexAttrib3s");
	glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) glgGetProcAddress("glVertexAttrib3sv");
	glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) glgGetProcAddress("glVertexAttrib4Nbv");
	glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) glgGetProcAddress("glVertexAttrib4Niv");
	glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) glgGetProcAddress("glVertexAttrib4Nsv");
	glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) glgGetProcAddress("glVertexAttrib4Nub");
	glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) glgGetProcAddress("glVertexAttrib4Nubv");
	glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) glgGetProcAddress("glVertexAttrib4Nuiv");
	glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) glgGetProcAddress("glVertexAttrib4Nusv");
	glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) glgGetProcAddress("glVertexAttrib4bv");
	glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) glgGetProcAddress("glVertexAttrib4d");
	glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) glgGetProcAddress("glVertexAttrib4dv");
	glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) glgGetProcAddress("glVertexAttrib4f");
	glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) glgGetProcAddress("glVertexAttrib4fv");
	glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) glgGetProcAddress("glVertexAttrib4iv");
	glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) glgGetProcAddress("glVertexAttrib4s");
	glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) glgGetProcAddress("glVertexAttrib4sv");
	glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) glgGetProcAddress("glVertexAttrib4ubv");
	glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) glgGetProcAddress("glVertexAttrib4uiv");
	glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) glgGetProcAddress("glVertexAttrib4usv");
	glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) glgGetProcAddress("glVertexAttribPointer");

	// GL_VERSION_2_1
	glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) glgGetProcAddress("glUniformMatrix2x3fv");
	glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) glgGetProcAddress("glUniformMatrix3x2fv");
	glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) glgGetProcAddress("glUniformMatrix2x4fv");
	glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) glgGetProcAddress("glUniformMatrix4x2fv");
	glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) glgGetProcAddress("glUniformMatrix3x4fv");
	glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) glgGetProcAddress("glUniformMatrix4x3fv");

	// GL_VERSION_3_0
	glColorMaski = (PFNGLCOLORMASKIPROC) glgGetProcAddress("glColorMaski");
	glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) glgGetProcAddress("glGetBooleani_v");
	glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) glgGetProcAddress("glGetIntegeri_v");
	glEnablei = (PFNGLENABLEIPROC) glgGetProcAddress("glEnablei");
	glDisablei = (PFNGLDISABLEIPROC) glgGetProcAddress("glDisablei");
	glIsEnabledi = (PFNGLISENABLEDIPROC) glgGetProcAddress("glIsEnabledi");
	glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) glgGetProcAddress("glBeginTransformFeedback");
	glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) glgGetProcAddress("glEndTransformFeedback");
	glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) glgGetProcAddress("glBindBufferRange");
	glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) glgGetProcAddress("glBindBufferBase");
	glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) glgGetProcAddress("glTransformFeedbackVaryings");
	glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) glgGetProcAddress("glGetTransformFeedbackVarying");
	glClampColor = (PFNGLCLAMPCOLORPROC) glgGetProcAddress("glClampColor");
	glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) glgGetProcAddress("glBeginConditionalRender");
	glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) glgGetProcAddress("glEndConditionalRender");
	glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) glgGetProcAddress("glVertexAttribIPointer");
	glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) glgGetProcAddress("glGetVertexAttribIiv");
	glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) glgGetProcAddress("glGetVertexAttribIuiv");
	glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) glgGetProcAddress("glVertexAttribI1i");
	glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) glgGetProcAddress("glVertexAttribI2i");
	glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) glgGetProcAddress("glVertexAttribI3i");
	glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) glgGetProcAddress("glVertexAttribI4i");
	glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) glgGetProcAddress("glVertexAttribI1ui");
	glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) glgGetProcAddress("glVertexAttribI2ui");
	glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) glgGetProcAddress("glVertexAttribI3ui");
	glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) glgGetProcAddress("glVertexAttribI4ui");
	glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) glgGetProcAddress("glVertexAttribI1iv");
	glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) glgGetProcAddress("glVertexAttribI2iv");
	glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) glgGetProcAddress("glVertexAttribI3iv");
	glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) glgGetProcAddress("glVertexAttribI4iv");
	glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) glgGetProcAddress("glVertexAttribI1uiv");
	glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) glgGetProcAddress("glVertexAttribI2uiv");
	glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) glgGetProcAddress("glVertexAttribI3uiv");
	glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) glgGetProcAddress("glVertexAttribI4uiv");
	glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) glgGetProcAddress("glVertexAttribI4bv");
	glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) glgGetProcAddress("glVertexAttribI4sv");
	glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) glgGetProcAddress("glVertexAttribI4ubv");
	glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) glgGetProcAddress("glVertexAttribI4usv");
	glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) glgGetProcAddress("glGetUniformuiv");
	glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) glgGetProcAddress("glBindFragDataLocation");
	glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) glgGetProcAddress("glGetFragDataLocation");
	glUniform1ui = (PFNGLUNIFORM1UIPROC) glgGetProcAddress("glUniform1ui");
	glUniform2ui = (PFNGLUNIFORM2UIPROC) glgGetProcAddress("glUniform2ui");
	glUniform3ui = (PFNGLUNIFORM3UIPROC) glgGetProcAddress("glUniform3ui");
	glUniform4ui = (PFNGLUNIFORM4UIPROC) glgGetProcAddress("glUniform4ui");
	glUniform1uiv = (PFNGLUNIFORM1UIVPROC) glgGetProcAddress("glUniform1uiv");
	glUniform2uiv = (PFNGLUNIFORM2UIVPROC) glgGetProcAddress("glUniform2uiv");
	glUniform3uiv = (PFNGLUNIFORM3UIVPROC) glgGetProcAddress("glUniform3uiv");
	glUniform4uiv = (PFNGLUNIFORM4UIVPROC) glgGetProcAddress("glUniform4uiv");
	glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) glgGetProcAddress("glTexParameterIiv");
	glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) glgGetProcAddress("glTexParameterIuiv");
	glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) glgGetProcAddress("glGetTexParameterIiv");
	glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) glgGetProcAddress("glGetTexParameterIuiv");
	glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) glgGetProcAddress("glClearBufferiv");
	glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) glgGetProcAddress("glClearBufferuiv");
	glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) glgGetProcAddress("glClearBufferfv");
	glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) glgGetProcAddress("glClearBufferfi");
	glGetStringi = (PFNGLGETSTRINGIPROC) glgGetProcAddress("glGetStringi");

	// GL_VERSION_3_1
	glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) glgGetProcAddress("glDrawArraysInstanced");
	glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) glgGetProcAddress("glDrawElementsInstanced");
	glTexBuffer = (PFNGLTEXBUFFERPROC) glgGetProcAddress("glTexBuffer");
	glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) glgGetProcAddress("glPrimitiveRestartIndex");

	// GL_VERSION_3_2
	glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) glgGetProcAddress("glGetInteger64i_v");
	glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) glgGetProcAddress("glGetBufferParameteri64v");
	glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) glgGetProcAddress("glProgramParameteri");
	glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) glgGetProcAddress("glFramebufferTexture");
	glFramebufferTextureFace = (PFNGLFRAMEBUFFERTEXTUREFACEPROC) glgGetProcAddress("glFramebufferTextureFace");

	// GL_ARB_multitexture
	glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) glgGetProcAddress("glActiveTextureARB");
	glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC) glgGetProcAddress("glClientActiveTextureARB");
	glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC) glgGetProcAddress("glMultiTexCoord1dARB");
	glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC) glgGetProcAddress("glMultiTexCoord1dvARB");
	glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC) glgGetProcAddress("glMultiTexCoord1fARB");
	glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC) glgGetProcAddress("glMultiTexCoord1fvARB");
	glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC) glgGetProcAddress("glMultiTexCoord1iARB");
	glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC) glgGetProcAddress("glMultiTexCoord1ivARB");
	glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC) glgGetProcAddress("glMultiTexCoord1sARB");
	glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC) glgGetProcAddress("glMultiTexCoord1svARB");
	glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC) glgGetProcAddress("glMultiTexCoord2dARB");
	glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC) glgGetProcAddress("glMultiTexCoord2dvARB");
	glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) glgGetProcAddress("glMultiTexCoord2fARB");
	glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC) glgGetProcAddress("glMultiTexCoord2fvARB");
	glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC) glgGetProcAddress("glMultiTexCoord2iARB");
	glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC) glgGetProcAddress("glMultiTexCoord2ivARB");
	glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC) glgGetProcAddress("glMultiTexCoord2sARB");
	glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC) glgGetProcAddress("glMultiTexCoord2svARB");
	glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC) glgGetProcAddress("glMultiTexCoord3dARB");
	glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC) glgGetProcAddress("glMultiTexCoord3dvARB");
	glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC) glgGetProcAddress("glMultiTexCoord3fARB");
	glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC) glgGetProcAddress("glMultiTexCoord3fvARB");
	glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC) glgGetProcAddress("glMultiTexCoord3iARB");
	glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC) glgGetProcAddress("glMultiTexCoord3ivARB");
	glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC) glgGetProcAddress("glMultiTexCoord3sARB");
	glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC) glgGetProcAddress("glMultiTexCoord3svARB");
	glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC) glgGetProcAddress("glMultiTexCoord4dARB");
	glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC) glgGetProcAddress("glMultiTexCoord4dvARB");
	glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC) glgGetProcAddress("glMultiTexCoord4fARB");
	glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC) glgGetProcAddress("glMultiTexCoord4fvARB");
	glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC) glgGetProcAddress("glMultiTexCoord4iARB");
	glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC) glgGetProcAddress("glMultiTexCoord4ivARB");
	glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC) glgGetProcAddress("glMultiTexCoord4sARB");
	glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC) glgGetProcAddress("glMultiTexCoord4svARB");

	// GL_ARB_transpose_matrix
	glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC) glgGetProcAddress("glLoadTransposeMatrixfARB");
	glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC) glgGetProcAddress("glLoadTransposeMatrixdARB");
	glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC) glgGetProcAddress("glMultTransposeMatrixfARB");
	glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC) glgGetProcAddress("glMultTransposeMatrixdARB");

	// GL_ARB_multisample
	glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC) glgGetProcAddress("glSampleCoverageARB");

	// GL_ARB_texture_compression
	glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) glgGetProcAddress("glCompressedTexImage3DARB");
	glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) glgGetProcAddress("glCompressedTexImage2DARB");
	glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) glgGetProcAddress("glCompressedTexImage1DARB");
	glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) glgGetProcAddress("glCompressedTexSubImage3DARB");
	glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) glgGetProcAddress("glCompressedTexSubImage2DARB");
	glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) glgGetProcAddress("glCompressedTexSubImage1DARB");
	glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) glgGetProcAddress("glGetCompressedTexImageARB");

	// GL_ARB_point_parameters
	glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC) glgGetProcAddress("glPointParameterfARB");
	glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC) glgGetProcAddress("glPointParameterfvARB");

	// GL_ARB_vertex_blend
	glWeightbvARB = (PFNGLWEIGHTBVARBPROC) glgGetProcAddress("glWeightbvARB");
	glWeightsvARB = (PFNGLWEIGHTSVARBPROC) glgGetProcAddress("glWeightsvARB");
	glWeightivARB = (PFNGLWEIGHTIVARBPROC) glgGetProcAddress("glWeightivARB");
	glWeightfvARB = (PFNGLWEIGHTFVARBPROC) glgGetProcAddress("glWeightfvARB");
	glWeightdvARB = (PFNGLWEIGHTDVARBPROC) glgGetProcAddress("glWeightdvARB");
	glWeightubvARB = (PFNGLWEIGHTUBVARBPROC) glgGetProcAddress("glWeightubvARB");
	glWeightusvARB = (PFNGLWEIGHTUSVARBPROC) glgGetProcAddress("glWeightusvARB");
	glWeightuivARB = (PFNGLWEIGHTUIVARBPROC) glgGetProcAddress("glWeightuivARB");
	glWeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC) glgGetProcAddress("glWeightPointerARB");
	glVertexBlendARB = (PFNGLVERTEXBLENDARBPROC) glgGetProcAddress("glVertexBlendARB");

	// GL_ARB_matrix_palette
	glCurrentPaletteMatrixARB = (PFNGLCURRENTPALETTEMATRIXARBPROC) glgGetProcAddress("glCurrentPaletteMatrixARB");
	glMatrixIndexubvARB = (PFNGLMATRIXINDEXUBVARBPROC) glgGetProcAddress("glMatrixIndexubvARB");
	glMatrixIndexusvARB = (PFNGLMATRIXINDEXUSVARBPROC) glgGetProcAddress("glMatrixIndexusvARB");
	glMatrixIndexuivARB = (PFNGLMATRIXINDEXUIVARBPROC) glgGetProcAddress("glMatrixIndexuivARB");
	glMatrixIndexPointerARB = (PFNGLMATRIXINDEXPOINTERARBPROC) glgGetProcAddress("glMatrixIndexPointerARB");

	// GL_ARB_window_pos
	glWindowPos2dARB = (PFNGLWINDOWPOS2DARBPROC) glgGetProcAddress("glWindowPos2dARB");
	glWindowPos2dvARB = (PFNGLWINDOWPOS2DVARBPROC) glgGetProcAddress("glWindowPos2dvARB");
	glWindowPos2fARB = (PFNGLWINDOWPOS2FARBPROC) glgGetProcAddress("glWindowPos2fARB");
	glWindowPos2fvARB = (PFNGLWINDOWPOS2FVARBPROC) glgGetProcAddress("glWindowPos2fvARB");
	glWindowPos2iARB = (PFNGLWINDOWPOS2IARBPROC) glgGetProcAddress("glWindowPos2iARB");
	glWindowPos2ivARB = (PFNGLWINDOWPOS2IVARBPROC) glgGetProcAddress("glWindowPos2ivARB");
	glWindowPos2sARB = (PFNGLWINDOWPOS2SARBPROC) glgGetProcAddress("glWindowPos2sARB");
	glWindowPos2svARB = (PFNGLWINDOWPOS2SVARBPROC) glgGetProcAddress("glWindowPos2svARB");
	glWindowPos3dARB = (PFNGLWINDOWPOS3DARBPROC) glgGetProcAddress("glWindowPos3dARB");
	glWindowPos3dvARB = (PFNGLWINDOWPOS3DVARBPROC) glgGetProcAddress("glWindowPos3dvARB");
	glWindowPos3fARB = (PFNGLWINDOWPOS3FARBPROC) glgGetProcAddress("glWindowPos3fARB");
	glWindowPos3fvARB = (PFNGLWINDOWPOS3FVARBPROC) glgGetProcAddress("glWindowPos3fvARB");
	glWindowPos3iARB = (PFNGLWINDOWPOS3IARBPROC) glgGetProcAddress("glWindowPos3iARB");
	glWindowPos3ivARB = (PFNGLWINDOWPOS3IVARBPROC) glgGetProcAddress("glWindowPos3ivARB");
	glWindowPos3sARB = (PFNGLWINDOWPOS3SARBPROC) glgGetProcAddress("glWindowPos3sARB");
	glWindowPos3svARB = (PFNGLWINDOWPOS3SVARBPROC) glgGetProcAddress("glWindowPos3svARB");

	// GL_ARB_vertex_program
	glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC) glgGetProcAddress("glVertexAttrib1dARB");
	glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) glgGetProcAddress("glVertexAttrib1dvARB");
	glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC) glgGetProcAddress("glVertexAttrib1fARB");
	glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) glgGetProcAddress("glVertexAttrib1fvARB");
	glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC) glgGetProcAddress("glVertexAttrib1sARB");
	glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) glgGetProcAddress("glVertexAttrib1svARB");
	glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC) glgGetProcAddress("glVertexAttrib2dARB");
	glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC) glgGetProcAddress("glVertexAttrib2dvARB");
	glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC) glgGetProcAddress("glVertexAttrib2fARB");
	glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC) glgGetProcAddress("glVertexAttrib2fvARB");
	glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC) glgGetProcAddress("glVertexAttrib2sARB");
	glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC) glgGetProcAddress("glVertexAttrib2svARB");
	glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC) glgGetProcAddress("glVertexAttrib3dARB");
	glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC) glgGetProcAddress("glVertexAttrib3dvARB");
	glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) glgGetProcAddress("glVertexAttrib3fARB");
	glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) glgGetProcAddress("glVertexAttrib3fvARB");
	glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC) glgGetProcAddress("glVertexAttrib3sARB");
	glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC) glgGetProcAddress("glVertexAttrib3svARB");
	glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC) glgGetProcAddress("glVertexAttrib4NbvARB");
	glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC) glgGetProcAddress("glVertexAttrib4NivARB");
	glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) glgGetProcAddress("glVertexAttrib4NsvARB");
	glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC) glgGetProcAddress("glVertexAttrib4NubARB");
	glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) glgGetProcAddress("glVertexAttrib4NubvARB");
	glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) glgGetProcAddress("glVertexAttrib4NuivARB");
	glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) glgGetProcAddress("glVertexAttrib4NusvARB");
	glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC) glgGetProcAddress("glVertexAttrib4bvARB");
	glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC) glgGetProcAddress("glVertexAttrib4dARB");
	glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC) glgGetProcAddress("glVertexAttrib4dvARB");
	glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) glgGetProcAddress("glVertexAttrib4fARB");
	glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) glgGetProcAddress("glVertexAttrib4fvARB");
	glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) glgGetProcAddress("glVertexAttrib4ivARB");
	glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC) glgGetProcAddress("glVertexAttrib4sARB");
	glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC) glgGetProcAddress("glVertexAttrib4svARB");
	glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC) glgGetProcAddress("glVertexAttrib4ubvARB");
	glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) glgGetProcAddress("glVertexAttrib4uivARB");
	glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) glgGetProcAddress("glVertexAttrib4usvARB");
	glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) glgGetProcAddress("glVertexAttribPointerARB");
	glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) glgGetProcAddress("glEnableVertexAttribArrayARB");
	glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) glgGetProcAddress("glDisableVertexAttribArrayARB");
	glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) glgGetProcAddress("glProgramStringARB");
	glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) glgGetProcAddress("glBindProgramARB");
	glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) glgGetProcAddress("glDeleteProgramsARB");
	glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) glgGetProcAddress("glGenProgramsARB");
	glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC) glgGetProcAddress("glProgramEnvParameter4dARB");
	glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC) glgGetProcAddress("glProgramEnvParameter4dvARB");
	glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) glgGetProcAddress("glProgramEnvParameter4fARB");
	glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) glgGetProcAddress("glProgramEnvParameter4fvARB");
	glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) glgGetProcAddress("glProgramLocalParameter4dARB");
	glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) glgGetProcAddress("glProgramLocalParameter4dvARB");
	glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) glgGetProcAddress("glProgramLocalParameter4fARB");
	glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) glgGetProcAddress("glProgramLocalParameter4fvARB");
	glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC) glgGetProcAddress("glGetProgramEnvParameterdvARB");
	glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) glgGetProcAddress("glGetProgramEnvParameterfvARB");
	glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) glgGetProcAddress("glGetProgramLocalParameterdvARB");
	glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) glgGetProcAddress("glGetProgramLocalParameterfvARB");
	glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) glgGetProcAddress("glGetProgramivARB");
	glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC) glgGetProcAddress("glGetProgramStringARB");
	glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) glgGetProcAddress("glGetVertexAttribdvARB");
	glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) glgGetProcAddress("glGetVertexAttribfvARB");
	glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) glgGetProcAddress("glGetVertexAttribivARB");
	glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC) glgGetProcAddress("glGetVertexAttribPointervARB");
	glIsProgramARB = (PFNGLISPROGRAMARBPROC) glgGetProcAddress("glIsProgramARB");

	// GL_ARB_vertex_buffer_object
	glBindBufferARB = (PFNGLBINDBUFFERARBPROC) glgGetProcAddress("glBindBufferARB");
	glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) glgGetProcAddress("glDeleteBuffersARB");
	glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) glgGetProcAddress("glGenBuffersARB");
	glIsBufferARB = (PFNGLISBUFFERARBPROC) glgGetProcAddress("glIsBufferARB");
	glBufferDataARB = (PFNGLBUFFERDATAARBPROC) glgGetProcAddress("glBufferDataARB");
	glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC) glgGetProcAddress("glBufferSubDataARB");
	glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC) glgGetProcAddress("glGetBufferSubDataARB");
	glMapBufferARB = (PFNGLMAPBUFFERARBPROC) glgGetProcAddress("glMapBufferARB");
	glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC) glgGetProcAddress("glUnmapBufferARB");
	glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC) glgGetProcAddress("glGetBufferParameterivARB");
	glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC) glgGetProcAddress("glGetBufferPointervARB");

	// GL_ARB_occlusion_query
	glGenQueriesARB = (PFNGLGENQUERIESARBPROC) glgGetProcAddress("glGenQueriesARB");
	glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC) glgGetProcAddress("glDeleteQueriesARB");
	glIsQueryARB = (PFNGLISQUERYARBPROC) glgGetProcAddress("glIsQueryARB");
	glBeginQueryARB = (PFNGLBEGINQUERYARBPROC) glgGetProcAddress("glBeginQueryARB");
	glEndQueryARB = (PFNGLENDQUERYARBPROC) glgGetProcAddress("glEndQueryARB");
	glGetQueryivARB = (PFNGLGETQUERYIVARBPROC) glgGetProcAddress("glGetQueryivARB");
	glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC) glgGetProcAddress("glGetQueryObjectivARB");
	glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC) glgGetProcAddress("glGetQueryObjectuivARB");

	// GL_ARB_shader_objects
	glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) glgGetProcAddress("glDeleteObjectARB");
	glGetHandleARB = (PFNGLGETHANDLEARBPROC) glgGetProcAddress("glGetHandleARB");
	glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC) glgGetProcAddress("glDetachObjectARB");
	glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) glgGetProcAddress("glCreateShaderObjectARB");
	glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) glgGetProcAddress("glShaderSourceARB");
	glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) glgGetProcAddress("glCompileShaderARB");
	glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) glgGetProcAddress("glCreateProgramObjectARB");
	glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) glgGetProcAddress("glAttachObjectARB");
	glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) glgGetProcAddress("glLinkProgramARB");
	glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) glgGetProcAddress("glUseProgramObjectARB");
	glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC) glgGetProcAddress("glValidateProgramARB");
	glUniform1fARB = (PFNGLUNIFORM1FARBPROC) glgGetProcAddress("glUniform1fARB");
	glUniform2fARB = (PFNGLUNIFORM2FARBPROC) glgGetProcAddress("glUniform2fARB");
	glUniform3fARB = (PFNGLUNIFORM3FARBPROC) glgGetProcAddress("glUniform3fARB");
	glUniform4fARB = (PFNGLUNIFORM4FARBPROC) glgGetProcAddress("glUniform4fARB");
	glUniform1iARB = (PFNGLUNIFORM1IARBPROC) glgGetProcAddress("glUniform1iARB");
	glUniform2iARB = (PFNGLUNIFORM2IARBPROC) glgGetProcAddress("glUniform2iARB");
	glUniform3iARB = (PFNGLUNIFORM3IARBPROC) glgGetProcAddress("glUniform3iARB");
	glUniform4iARB = (PFNGLUNIFORM4IARBPROC) glgGetProcAddress("glUniform4iARB");
	glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC) glgGetProcAddress("glUniform1fvARB");
	glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC) glgGetProcAddress("glUniform2fvARB");
	glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC) glgGetProcAddress("glUniform3fvARB");
	glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC) glgGetProcAddress("glUniform4fvARB");
	glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC) glgGetProcAddress("glUniform1ivARB");
	glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC) glgGetProcAddress("glUniform2ivARB");
	glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC) glgGetProcAddress("glUniform3ivARB");
	glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC) glgGetProcAddress("glUniform4ivARB");
	glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC) glgGetProcAddress("glUniformMatrix2fvARB");
	glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC) glgGetProcAddress("glUniformMatrix3fvARB");
	glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC) glgGetProcAddress("glUniformMatrix4fvARB");
	glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC) glgGetProcAddress("glGetObjectParameterfvARB");
	glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) glgGetProcAddress("glGetObjectParameterivARB");
	glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) glgGetProcAddress("glGetInfoLogARB");
	glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC) glgGetProcAddress("glGetAttachedObjectsARB");
	glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) glgGetProcAddress("glGetUniformLocationARB");
	glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC) glgGetProcAddress("glGetActiveUniformARB");
	glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC) glgGetProcAddress("glGetUniformfvARB");
	glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC) glgGetProcAddress("glGetUniformivARB");
	glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC) glgGetProcAddress("glGetShaderSourceARB");

	// GL_ARB_vertex_shader
	glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC) glgGetProcAddress("glBindAttribLocationARB");
	glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC) glgGetProcAddress("glGetActiveAttribARB");
	glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC) glgGetProcAddress("glGetAttribLocationARB");

	// GL_ARB_draw_buffers
	glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC) glgGetProcAddress("glDrawBuffersARB");

	// GL_ARB_color_buffer_float
	glClampColorARB = (PFNGLCLAMPCOLORARBPROC) glgGetProcAddress("glClampColorARB");

	// GL_ARB_draw_instanced
	glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC) glgGetProcAddress("glDrawArraysInstancedARB");
	glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC) glgGetProcAddress("glDrawElementsInstancedARB");

	// GL_ARB_framebuffer_object
	glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) glgGetProcAddress("glIsRenderbuffer");
	glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) glgGetProcAddress("glBindRenderbuffer");
	glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) glgGetProcAddress("glDeleteRenderbuffers");
	glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) glgGetProcAddress("glGenRenderbuffers");
	glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) glgGetProcAddress("glRenderbufferStorage");
	glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) glgGetProcAddress("glGetRenderbufferParameteriv");
	glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) glgGetProcAddress("glIsFramebuffer");
	glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) glgGetProcAddress("glBindFramebuffer");
	glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) glgGetProcAddress("glDeleteFramebuffers");
	glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) glgGetProcAddress("glGenFramebuffers");
	glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) glgGetProcAddress("glCheckFramebufferStatus");
	glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) glgGetProcAddress("glFramebufferTexture1D");
	glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) glgGetProcAddress("glFramebufferTexture2D");
	glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) glgGetProcAddress("glFramebufferTexture3D");
	glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) glgGetProcAddress("glFramebufferRenderbuffer");
	glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) glgGetProcAddress("glGetFramebufferAttachmentParameteriv");
	glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) glgGetProcAddress("glGenerateMipmap");
	glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) glgGetProcAddress("glBlitFramebuffer");
	glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) glgGetProcAddress("glRenderbufferStorageMultisample");
	glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) glgGetProcAddress("glFramebufferTextureLayer");

	// GL_ARB_geometry_shader4
	glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC) glgGetProcAddress("glProgramParameteriARB");
	glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC) glgGetProcAddress("glFramebufferTextureARB");
	glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) glgGetProcAddress("glFramebufferTextureLayerARB");
	glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) glgGetProcAddress("glFramebufferTextureFaceARB");

	// GL_ARB_instanced_arrays
	glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC) glgGetProcAddress("glVertexAttribDivisorARB");

	// GL_ARB_map_buffer_range
	glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) glgGetProcAddress("glMapBufferRange");
	glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) glgGetProcAddress("glFlushMappedBufferRange");

	// GL_ARB_texture_buffer_object
	glTexBufferARB = (PFNGLTEXBUFFERARBPROC) glgGetProcAddress("glTexBufferARB");

	// GL_ARB_vertex_array_object
	glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) glgGetProcAddress("glBindVertexArray");
	glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) glgGetProcAddress("glDeleteVertexArrays");
	glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) glgGetProcAddress("glGenVertexArrays");
	glIsVertexArray = (PFNGLISVERTEXARRAYPROC) glgGetProcAddress("glIsVertexArray");

	// GL_ARB_uniform_buffer_object
	glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) glgGetProcAddress("glGetUniformIndices");
	glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) glgGetProcAddress("glGetActiveUniformsiv");
	glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) glgGetProcAddress("glGetActiveUniformName");
	glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) glgGetProcAddress("glGetUniformBlockIndex");
	glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) glgGetProcAddress("glGetActiveUniformBlockiv");
	glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) glgGetProcAddress("glGetActiveUniformBlockName");
	glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) glgGetProcAddress("glUniformBlockBinding");

	// GL_ARB_copy_buffer
	glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) glgGetProcAddress("glCopyBufferSubData");

	// GL_ARB_draw_elements_base_vertex
	glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) glgGetProcAddress("glDrawElementsBaseVertex");
	glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) glgGetProcAddress("glDrawRangeElementsBaseVertex");
	glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) glgGetProcAddress("glDrawElementsInstancedBaseVertex");
	glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) glgGetProcAddress("glMultiDrawElementsBaseVertex");

	// GL_ARB_provoking_vertex
	glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) glgGetProcAddress("glProvokingVertex");

	// GL_ARB_sync
	glFenceSync = (PFNGLFENCESYNCPROC) glgGetProcAddress("glFenceSync");
	glIsSync = (PFNGLISSYNCPROC) glgGetProcAddress("glIsSync");
	glDeleteSync = (PFNGLDELETESYNCPROC) glgGetProcAddress("glDeleteSync");
	glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) glgGetProcAddress("glClientWaitSync");
	glWaitSync = (PFNGLWAITSYNCPROC) glgGetProcAddress("glWaitSync");
	glGetInteger64v = (PFNGLGETINTEGER64VPROC) glgGetProcAddress("glGetInteger64v");
	glGetSynciv = (PFNGLGETSYNCIVPROC) glgGetProcAddress("glGetSynciv");

	// GL_ARB_texture_multisample
	glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) glgGetProcAddress("glTexImage2DMultisample");
	glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) glgGetProcAddress("glTexImage3DMultisample");
	glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) glgGetProcAddress("glGetMultisamplefv");
	glSampleMaski = (PFNGLSAMPLEMASKIPROC) glgGetProcAddress("glSampleMaski");

	// GL_ARB_draw_buffers_blend
	glBlendEquationi = (PFNGLBLENDEQUATIONIPROC) glgGetProcAddress("glBlendEquationi");
	glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC) glgGetProcAddress("glBlendEquationSeparatei");
	glBlendFunci = (PFNGLBLENDFUNCIPROC) glgGetProcAddress("glBlendFunci");
	glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC) glgGetProcAddress("glBlendFuncSeparatei");

	// GL_ARB_sample_shading
	glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC) glgGetProcAddress("glMinSampleShading");

	// GL_EXT_blend_color
	glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC) glgGetProcAddress("glBlendColorEXT");

	// GL_EXT_polygon_offset
	glPolygonOffsetEXT = (PFNGLPOLYGONOFFSETEXTPROC) glgGetProcAddress("glPolygonOffsetEXT");

	// GL_EXT_texture3D
	glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC) glgGetProcAddress("glTexImage3DEXT");
	glTexSubImage3DEXT = (PFNGLTEXSUBIMAGE3DEXTPROC) glgGetProcAddress("glTexSubImage3DEXT");

	// GL_SGIS_texture_filter4
	glGetTexFilterFuncSGIS = (PFNGLGETTEXFILTERFUNCSGISPROC) glgGetProcAddress("glGetTexFilterFuncSGIS");
	glTexFilterFuncSGIS = (PFNGLTEXFILTERFUNCSGISPROC) glgGetProcAddress("glTexFilterFuncSGIS");

	// GL_EXT_subtexture
	glTexSubImage1DEXT = (PFNGLTEXSUBIMAGE1DEXTPROC) glgGetProcAddress("glTexSubImage1DEXT");
	glTexSubImage2DEXT = (PFNGLTEXSUBIMAGE2DEXTPROC) glgGetProcAddress("glTexSubImage2DEXT");

	// GL_EXT_copy_texture
	glCopyTexImage1DEXT = (PFNGLCOPYTEXIMAGE1DEXTPROC) glgGetProcAddress("glCopyTexImage1DEXT");
	glCopyTexImage2DEXT = (PFNGLCOPYTEXIMAGE2DEXTPROC) glgGetProcAddress("glCopyTexImage2DEXT");
	glCopyTexSubImage1DEXT = (PFNGLCOPYTEXSUBIMAGE1DEXTPROC) glgGetProcAddress("glCopyTexSubImage1DEXT");
	glCopyTexSubImage2DEXT = (PFNGLCOPYTEXSUBIMAGE2DEXTPROC) glgGetProcAddress("glCopyTexSubImage2DEXT");
	glCopyTexSubImage3DEXT = (PFNGLCOPYTEXSUBIMAGE3DEXTPROC) glgGetProcAddress("glCopyTexSubImage3DEXT");

	// GL_EXT_histogram
	glGetHistogramEXT = (PFNGLGETHISTOGRAMEXTPROC) glgGetProcAddress("glGetHistogramEXT");
	glGetHistogramParameterfvEXT = (PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) glgGetProcAddress("glGetHistogramParameterfvEXT");
	glGetHistogramParameterivEXT = (PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) glgGetProcAddress("glGetHistogramParameterivEXT");
	glGetMinmaxEXT = (PFNGLGETMINMAXEXTPROC) glgGetProcAddress("glGetMinmaxEXT");
	glGetMinmaxParameterfvEXT = (PFNGLGETMINMAXPARAMETERFVEXTPROC) glgGetProcAddress("glGetMinmaxParameterfvEXT");
	glGetMinmaxParameterivEXT = (PFNGLGETMINMAXPARAMETERIVEXTPROC) glgGetProcAddress("glGetMinmaxParameterivEXT");
	glHistogramEXT = (PFNGLHISTOGRAMEXTPROC) glgGetProcAddress("glHistogramEXT");
	glMinmaxEXT = (PFNGLMINMAXEXTPROC) glgGetProcAddress("glMinmaxEXT");
	glResetHistogramEXT = (PFNGLRESETHISTOGRAMEXTPROC) glgGetProcAddress("glResetHistogramEXT");
	glResetMinmaxEXT = (PFNGLRESETMINMAXEXTPROC) glgGetProcAddress("glResetMinmaxEXT");

	// GL_EXT_convolution
	glConvolutionFilter1DEXT = (PFNGLCONVOLUTIONFILTER1DEXTPROC) glgGetProcAddress("glConvolutionFilter1DEXT");
	glConvolutionFilter2DEXT = (PFNGLCONVOLUTIONFILTER2DEXTPROC) glgGetProcAddress("glConvolutionFilter2DEXT");
	glConvolutionParameterfEXT = (PFNGLCONVOLUTIONPARAMETERFEXTPROC) glgGetProcAddress("glConvolutionParameterfEXT");
	glConvolutionParameterfvEXT = (PFNGLCONVOLUTIONPARAMETERFVEXTPROC) glgGetProcAddress("glConvolutionParameterfvEXT");
	glConvolutionParameteriEXT = (PFNGLCONVOLUTIONPARAMETERIEXTPROC) glgGetProcAddress("glConvolutionParameteriEXT");
	glConvolutionParameterivEXT = (PFNGLCONVOLUTIONPARAMETERIVEXTPROC) glgGetProcAddress("glConvolutionParameterivEXT");
	glCopyConvolutionFilter1DEXT = (PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) glgGetProcAddress("glCopyConvolutionFilter1DEXT");
	glCopyConvolutionFilter2DEXT = (PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) glgGetProcAddress("glCopyConvolutionFilter2DEXT");
	glGetConvolutionFilterEXT = (PFNGLGETCONVOLUTIONFILTEREXTPROC) glgGetProcAddress("glGetConvolutionFilterEXT");
	glGetConvolutionParameterfvEXT = (PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) glgGetProcAddress("glGetConvolutionParameterfvEXT");
	glGetConvolutionParameterivEXT = (PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) glgGetProcAddress("glGetConvolutionParameterivEXT");
	glGetSeparableFilterEXT = (PFNGLGETSEPARABLEFILTEREXTPROC) glgGetProcAddress("glGetSeparableFilterEXT");
	glSeparableFilter2DEXT = (PFNGLSEPARABLEFILTER2DEXTPROC) glgGetProcAddress("glSeparableFilter2DEXT");

	// GL_SGI_color_table
	glColorTableSGI = (PFNGLCOLORTABLESGIPROC) glgGetProcAddress("glColorTableSGI");
	glColorTableParameterfvSGI = (PFNGLCOLORTABLEPARAMETERFVSGIPROC) glgGetProcAddress("glColorTableParameterfvSGI");
	glColorTableParameterivSGI = (PFNGLCOLORTABLEPARAMETERIVSGIPROC) glgGetProcAddress("glColorTableParameterivSGI");
	glCopyColorTableSGI = (PFNGLCOPYCOLORTABLESGIPROC) glgGetProcAddress("glCopyColorTableSGI");
	glGetColorTableSGI = (PFNGLGETCOLORTABLESGIPROC) glgGetProcAddress("glGetColorTableSGI");
	glGetColorTableParameterfvSGI = (PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) glgGetProcAddress("glGetColorTableParameterfvSGI");
	glGetColorTableParameterivSGI = (PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) glgGetProcAddress("glGetColorTableParameterivSGI");

	// GL_SGIX_pixel_texture
	glPixelTexGenSGIX = (PFNGLPIXELTEXGENSGIXPROC) glgGetProcAddress("glPixelTexGenSGIX");

	// GL_SGIS_pixel_texture
	glPixelTexGenParameteriSGIS = (PFNGLPIXELTEXGENPARAMETERISGISPROC) glgGetProcAddress("glPixelTexGenParameteriSGIS");
	glPixelTexGenParameterivSGIS = (PFNGLPIXELTEXGENPARAMETERIVSGISPROC) glgGetProcAddress("glPixelTexGenParameterivSGIS");
	glPixelTexGenParameterfSGIS = (PFNGLPIXELTEXGENPARAMETERFSGISPROC) glgGetProcAddress("glPixelTexGenParameterfSGIS");
	glPixelTexGenParameterfvSGIS = (PFNGLPIXELTEXGENPARAMETERFVSGISPROC) glgGetProcAddress("glPixelTexGenParameterfvSGIS");
	glGetPixelTexGenParameterivSGIS = (PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) glgGetProcAddress("glGetPixelTexGenParameterivSGIS");
	glGetPixelTexGenParameterfvSGIS = (PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) glgGetProcAddress("glGetPixelTexGenParameterfvSGIS");

	// GL_SGIS_texture4D
	glTexImage4DSGIS = (PFNGLTEXIMAGE4DSGISPROC) glgGetProcAddress("glTexImage4DSGIS");
	glTexSubImage4DSGIS = (PFNGLTEXSUBIMAGE4DSGISPROC) glgGetProcAddress("glTexSubImage4DSGIS");

	// GL_EXT_texture_object
	glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC) glgGetProcAddress("glAreTexturesResidentEXT");
	glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC) glgGetProcAddress("glBindTextureEXT");
	glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC) glgGetProcAddress("glDeleteTexturesEXT");
	glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC) glgGetProcAddress("glGenTexturesEXT");
	glIsTextureEXT = (PFNGLISTEXTUREEXTPROC) glgGetProcAddress("glIsTextureEXT");
	glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC) glgGetProcAddress("glPrioritizeTexturesEXT");

	// GL_SGIS_detail_texture
	glDetailTexFuncSGIS = (PFNGLDETAILTEXFUNCSGISPROC) glgGetProcAddress("glDetailTexFuncSGIS");
	glGetDetailTexFuncSGIS = (PFNGLGETDETAILTEXFUNCSGISPROC) glgGetProcAddress("glGetDetailTexFuncSGIS");

	// GL_SGIS_sharpen_texture
	glSharpenTexFuncSGIS = (PFNGLSHARPENTEXFUNCSGISPROC) glgGetProcAddress("glSharpenTexFuncSGIS");
	glGetSharpenTexFuncSGIS = (PFNGLGETSHARPENTEXFUNCSGISPROC) glgGetProcAddress("glGetSharpenTexFuncSGIS");

	// GL_SGIS_multisample
	glSampleMaskSGIS = (PFNGLSAMPLEMASKSGISPROC) glgGetProcAddress("glSampleMaskSGIS");
	glSamplePatternSGIS = (PFNGLSAMPLEPATTERNSGISPROC) glgGetProcAddress("glSamplePatternSGIS");

	// GL_EXT_vertex_array
	glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC) glgGetProcAddress("glArrayElementEXT");
	glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC) glgGetProcAddress("glColorPointerEXT");
	glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC) glgGetProcAddress("glDrawArraysEXT");
	glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC) glgGetProcAddress("glEdgeFlagPointerEXT");
	glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC) glgGetProcAddress("glGetPointervEXT");
	glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC) glgGetProcAddress("glIndexPointerEXT");
	glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC) glgGetProcAddress("glNormalPointerEXT");
	glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC) glgGetProcAddress("glTexCoordPointerEXT");
	glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC) glgGetProcAddress("glVertexPointerEXT");

	// GL_EXT_blend_minmax
	glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC) glgGetProcAddress("glBlendEquationEXT");

	// GL_SGIX_sprite
	glSpriteParameterfSGIX = (PFNGLSPRITEPARAMETERFSGIXPROC) glgGetProcAddress("glSpriteParameterfSGIX");
	glSpriteParameterfvSGIX = (PFNGLSPRITEPARAMETERFVSGIXPROC) glgGetProcAddress("glSpriteParameterfvSGIX");
	glSpriteParameteriSGIX = (PFNGLSPRITEPARAMETERISGIXPROC) glgGetProcAddress("glSpriteParameteriSGIX");
	glSpriteParameterivSGIX = (PFNGLSPRITEPARAMETERIVSGIXPROC) glgGetProcAddress("glSpriteParameterivSGIX");

	// GL_EXT_point_parameters
	glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC) glgGetProcAddress("glPointParameterfEXT");
	glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC) glgGetProcAddress("glPointParameterfvEXT");

	// GL_SGIS_point_parameters
	glPointParameterfSGIS = (PFNGLPOINTPARAMETERFSGISPROC) glgGetProcAddress("glPointParameterfSGIS");
	glPointParameterfvSGIS = (PFNGLPOINTPARAMETERFVSGISPROC) glgGetProcAddress("glPointParameterfvSGIS");

	// GL_SGIX_instruments
	glGetInstrumentsSGIX = (PFNGLGETINSTRUMENTSSGIXPROC) glgGetProcAddress("glGetInstrumentsSGIX");
	glInstrumentsBufferSGIX = (PFNGLINSTRUMENTSBUFFERSGIXPROC) glgGetProcAddress("glInstrumentsBufferSGIX");
	glPollInstrumentsSGIX = (PFNGLPOLLINSTRUMENTSSGIXPROC) glgGetProcAddress("glPollInstrumentsSGIX");
	glReadInstrumentsSGIX = (PFNGLREADINSTRUMENTSSGIXPROC) glgGetProcAddress("glReadInstrumentsSGIX");
	glStartInstrumentsSGIX = (PFNGLSTARTINSTRUMENTSSGIXPROC) glgGetProcAddress("glStartInstrumentsSGIX");
	glStopInstrumentsSGIX = (PFNGLSTOPINSTRUMENTSSGIXPROC) glgGetProcAddress("glStopInstrumentsSGIX");

	// GL_SGIX_framezoom
	glFrameZoomSGIX = (PFNGLFRAMEZOOMSGIXPROC) glgGetProcAddress("glFrameZoomSGIX");

	// GL_SGIX_tag_sample_buffer
	glTagSampleBufferSGIX = (PFNGLTAGSAMPLEBUFFERSGIXPROC) glgGetProcAddress("glTagSampleBufferSGIX");

	// GL_SGIX_polynomial_ffd
	glDeformationMap3dSGIX = (PFNGLDEFORMATIONMAP3DSGIXPROC) glgGetProcAddress("glDeformationMap3dSGIX");
	glDeformationMap3fSGIX = (PFNGLDEFORMATIONMAP3FSGIXPROC) glgGetProcAddress("glDeformationMap3fSGIX");
	glDeformSGIX = (PFNGLDEFORMSGIXPROC) glgGetProcAddress("glDeformSGIX");
	glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) glgGetProcAddress("glLoadIdentityDeformationMapSGIX");

	// GL_SGIX_reference_plane
	glReferencePlaneSGIX = (PFNGLREFERENCEPLANESGIXPROC) glgGetProcAddress("glReferencePlaneSGIX");

	// GL_SGIX_flush_raster
	glFlushRasterSGIX = (PFNGLFLUSHRASTERSGIXPROC) glgGetProcAddress("glFlushRasterSGIX");

	// GL_SGIS_fog_function
	glFogFuncSGIS = (PFNGLFOGFUNCSGISPROC) glgGetProcAddress("glFogFuncSGIS");
	glGetFogFuncSGIS = (PFNGLGETFOGFUNCSGISPROC) glgGetProcAddress("glGetFogFuncSGIS");

	// GL_HP_image_transform
	glImageTransformParameteriHP = (PFNGLIMAGETRANSFORMPARAMETERIHPPROC) glgGetProcAddress("glImageTransformParameteriHP");
	glImageTransformParameterfHP = (PFNGLIMAGETRANSFORMPARAMETERFHPPROC) glgGetProcAddress("glImageTransformParameterfHP");
	glImageTransformParameterivHP = (PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) glgGetProcAddress("glImageTransformParameterivHP");
	glImageTransformParameterfvHP = (PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) glgGetProcAddress("glImageTransformParameterfvHP");
	glGetImageTransformParameterivHP = (PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) glgGetProcAddress("glGetImageTransformParameterivHP");
	glGetImageTransformParameterfvHP = (PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) glgGetProcAddress("glGetImageTransformParameterfvHP");

	// GL_EXT_color_subtable
	glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC) glgGetProcAddress("glColorSubTableEXT");
	glCopyColorSubTableEXT = (PFNGLCOPYCOLORSUBTABLEEXTPROC) glgGetProcAddress("glCopyColorSubTableEXT");

	// GL_PGI_misc_hints
	glHintPGI = (PFNGLHINTPGIPROC) glgGetProcAddress("glHintPGI");

	// GL_EXT_paletted_texture
	glColorTableEXT = (PFNGLCOLORTABLEEXTPROC) glgGetProcAddress("glColorTableEXT");
	glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC) glgGetProcAddress("glGetColorTableEXT");
	glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) glgGetProcAddress("glGetColorTableParameterivEXT");
	glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) glgGetProcAddress("glGetColorTableParameterfvEXT");

	// GL_SGIX_list_priority
	glGetListParameterfvSGIX = (PFNGLGETLISTPARAMETERFVSGIXPROC) glgGetProcAddress("glGetListParameterfvSGIX");
	glGetListParameterivSGIX = (PFNGLGETLISTPARAMETERIVSGIXPROC) glgGetProcAddress("glGetListParameterivSGIX");
	glListParameterfSGIX = (PFNGLLISTPARAMETERFSGIXPROC) glgGetProcAddress("glListParameterfSGIX");
	glListParameterfvSGIX = (PFNGLLISTPARAMETERFVSGIXPROC) glgGetProcAddress("glListParameterfvSGIX");
	glListParameteriSGIX = (PFNGLLISTPARAMETERISGIXPROC) glgGetProcAddress("glListParameteriSGIX");
	glListParameterivSGIX = (PFNGLLISTPARAMETERIVSGIXPROC) glgGetProcAddress("glListParameterivSGIX");

	// GL_EXT_index_material
	glIndexMaterialEXT = (PFNGLINDEXMATERIALEXTPROC) glgGetProcAddress("glIndexMaterialEXT");

	// GL_EXT_index_func
	glIndexFuncEXT = (PFNGLINDEXFUNCEXTPROC) glgGetProcAddress("glIndexFuncEXT");

	// GL_EXT_compiled_vertex_array
	glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC) glgGetProcAddress("glLockArraysEXT");
	glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC) glgGetProcAddress("glUnlockArraysEXT");

	// GL_EXT_cull_vertex
	glCullParameterdvEXT = (PFNGLCULLPARAMETERDVEXTPROC) glgGetProcAddress("glCullParameterdvEXT");
	glCullParameterfvEXT = (PFNGLCULLPARAMETERFVEXTPROC) glgGetProcAddress("glCullParameterfvEXT");

	// GL_SGIX_fragment_lighting
	glFragmentColorMaterialSGIX = (PFNGLFRAGMENTCOLORMATERIALSGIXPROC) glgGetProcAddress("glFragmentColorMaterialSGIX");
	glFragmentLightfSGIX = (PFNGLFRAGMENTLIGHTFSGIXPROC) glgGetProcAddress("glFragmentLightfSGIX");
	glFragmentLightfvSGIX = (PFNGLFRAGMENTLIGHTFVSGIXPROC) glgGetProcAddress("glFragmentLightfvSGIX");
	glFragmentLightiSGIX = (PFNGLFRAGMENTLIGHTISGIXPROC) glgGetProcAddress("glFragmentLightiSGIX");
	glFragmentLightivSGIX = (PFNGLFRAGMENTLIGHTIVSGIXPROC) glgGetProcAddress("glFragmentLightivSGIX");
	glFragmentLightModelfSGIX = (PFNGLFRAGMENTLIGHTMODELFSGIXPROC) glgGetProcAddress("glFragmentLightModelfSGIX");
	glFragmentLightModelfvSGIX = (PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) glgGetProcAddress("glFragmentLightModelfvSGIX");
	glFragmentLightModeliSGIX = (PFNGLFRAGMENTLIGHTMODELISGIXPROC) glgGetProcAddress("glFragmentLightModeliSGIX");
	glFragmentLightModelivSGIX = (PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) glgGetProcAddress("glFragmentLightModelivSGIX");
	glFragmentMaterialfSGIX = (PFNGLFRAGMENTMATERIALFSGIXPROC) glgGetProcAddress("glFragmentMaterialfSGIX");
	glFragmentMaterialfvSGIX = (PFNGLFRAGMENTMATERIALFVSGIXPROC) glgGetProcAddress("glFragmentMaterialfvSGIX");
	glFragmentMaterialiSGIX = (PFNGLFRAGMENTMATERIALISGIXPROC) glgGetProcAddress("glFragmentMaterialiSGIX");
	glFragmentMaterialivSGIX = (PFNGLFRAGMENTMATERIALIVSGIXPROC) glgGetProcAddress("glFragmentMaterialivSGIX");
	glGetFragmentLightfvSGIX = (PFNGLGETFRAGMENTLIGHTFVSGIXPROC) glgGetProcAddress("glGetFragmentLightfvSGIX");
	glGetFragmentLightivSGIX = (PFNGLGETFRAGMENTLIGHTIVSGIXPROC) glgGetProcAddress("glGetFragmentLightivSGIX");
	glGetFragmentMaterialfvSGIX = (PFNGLGETFRAGMENTMATERIALFVSGIXPROC) glgGetProcAddress("glGetFragmentMaterialfvSGIX");
	glGetFragmentMaterialivSGIX = (PFNGLGETFRAGMENTMATERIALIVSGIXPROC) glgGetProcAddress("glGetFragmentMaterialivSGIX");
	glLightEnviSGIX = (PFNGLLIGHTENVISGIXPROC) glgGetProcAddress("glLightEnviSGIX");

	// GL_EXT_draw_range_elements
	glDrawRangeElementsEXT = (PFNGLDRAWRANGEELEMENTSEXTPROC) glgGetProcAddress("glDrawRangeElementsEXT");

	// GL_EXT_light_texture
	glApplyTextureEXT = (PFNGLAPPLYTEXTUREEXTPROC) glgGetProcAddress("glApplyTextureEXT");
	glTextureLightEXT = (PFNGLTEXTURELIGHTEXTPROC) glgGetProcAddress("glTextureLightEXT");
	glTextureMaterialEXT = (PFNGLTEXTUREMATERIALEXTPROC) glgGetProcAddress("glTextureMaterialEXT");

	// GL_SGIX_async
	glAsyncMarkerSGIX = (PFNGLASYNCMARKERSGIXPROC) glgGetProcAddress("glAsyncMarkerSGIX");
	glFinishAsyncSGIX = (PFNGLFINISHASYNCSGIXPROC) glgGetProcAddress("glFinishAsyncSGIX");
	glPollAsyncSGIX = (PFNGLPOLLASYNCSGIXPROC) glgGetProcAddress("glPollAsyncSGIX");
	glGenAsyncMarkersSGIX = (PFNGLGENASYNCMARKERSSGIXPROC) glgGetProcAddress("glGenAsyncMarkersSGIX");
	glDeleteAsyncMarkersSGIX = (PFNGLDELETEASYNCMARKERSSGIXPROC) glgGetProcAddress("glDeleteAsyncMarkersSGIX");
	glIsAsyncMarkerSGIX = (PFNGLISASYNCMARKERSGIXPROC) glgGetProcAddress("glIsAsyncMarkerSGIX");

	// GL_INTEL_parallel_arrays
	glVertexPointervINTEL = (PFNGLVERTEXPOINTERVINTELPROC) glgGetProcAddress("glVertexPointervINTEL");
	glNormalPointervINTEL = (PFNGLNORMALPOINTERVINTELPROC) glgGetProcAddress("glNormalPointervINTEL");
	glColorPointervINTEL = (PFNGLCOLORPOINTERVINTELPROC) glgGetProcAddress("glColorPointervINTEL");
	glTexCoordPointervINTEL = (PFNGLTEXCOORDPOINTERVINTELPROC) glgGetProcAddress("glTexCoordPointervINTEL");

	// GL_EXT_pixel_transform
	glPixelTransformParameteriEXT = (PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) glgGetProcAddress("glPixelTransformParameteriEXT");
	glPixelTransformParameterfEXT = (PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) glgGetProcAddress("glPixelTransformParameterfEXT");
	glPixelTransformParameterivEXT = (PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) glgGetProcAddress("glPixelTransformParameterivEXT");
	glPixelTransformParameterfvEXT = (PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) glgGetProcAddress("glPixelTransformParameterfvEXT");

	// GL_EXT_secondary_color
	glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC) glgGetProcAddress("glSecondaryColor3bEXT");
	glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC) glgGetProcAddress("glSecondaryColor3bvEXT");
	glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC) glgGetProcAddress("glSecondaryColor3dEXT");
	glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC) glgGetProcAddress("glSecondaryColor3dvEXT");
	glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC) glgGetProcAddress("glSecondaryColor3fEXT");
	glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC) glgGetProcAddress("glSecondaryColor3fvEXT");
	glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC) glgGetProcAddress("glSecondaryColor3iEXT");
	glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC) glgGetProcAddress("glSecondaryColor3ivEXT");
	glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC) glgGetProcAddress("glSecondaryColor3sEXT");
	glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC) glgGetProcAddress("glSecondaryColor3svEXT");
	glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC) glgGetProcAddress("glSecondaryColor3ubEXT");
	glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC) glgGetProcAddress("glSecondaryColor3ubvEXT");
	glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC) glgGetProcAddress("glSecondaryColor3uiEXT");
	glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC) glgGetProcAddress("glSecondaryColor3uivEXT");
	glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC) glgGetProcAddress("glSecondaryColor3usEXT");
	glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC) glgGetProcAddress("glSecondaryColor3usvEXT");
	glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC) glgGetProcAddress("glSecondaryColorPointerEXT");

	// GL_EXT_texture_perturb_normal
	glTextureNormalEXT = (PFNGLTEXTURENORMALEXTPROC) glgGetProcAddress("glTextureNormalEXT");

	// GL_EXT_multi_draw_arrays
	glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC) glgGetProcAddress("glMultiDrawArraysEXT");
	glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC) glgGetProcAddress("glMultiDrawElementsEXT");

	// GL_EXT_fog_coord
	glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC) glgGetProcAddress("glFogCoordfEXT");
	glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC) glgGetProcAddress("glFogCoordfvEXT");
	glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC) glgGetProcAddress("glFogCoorddEXT");
	glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC) glgGetProcAddress("glFogCoorddvEXT");
	glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC) glgGetProcAddress("glFogCoordPointerEXT");

	// GL_EXT_coordinate_frame
	glTangent3bEXT = (PFNGLTANGENT3BEXTPROC) glgGetProcAddress("glTangent3bEXT");
	glTangent3bvEXT = (PFNGLTANGENT3BVEXTPROC) glgGetProcAddress("glTangent3bvEXT");
	glTangent3dEXT = (PFNGLTANGENT3DEXTPROC) glgGetProcAddress("glTangent3dEXT");
	glTangent3dvEXT = (PFNGLTANGENT3DVEXTPROC) glgGetProcAddress("glTangent3dvEXT");
	glTangent3fEXT = (PFNGLTANGENT3FEXTPROC) glgGetProcAddress("glTangent3fEXT");
	glTangent3fvEXT = (PFNGLTANGENT3FVEXTPROC) glgGetProcAddress("glTangent3fvEXT");
	glTangent3iEXT = (PFNGLTANGENT3IEXTPROC) glgGetProcAddress("glTangent3iEXT");
	glTangent3ivEXT = (PFNGLTANGENT3IVEXTPROC) glgGetProcAddress("glTangent3ivEXT");
	glTangent3sEXT = (PFNGLTANGENT3SEXTPROC) glgGetProcAddress("glTangent3sEXT");
	glTangent3svEXT = (PFNGLTANGENT3SVEXTPROC) glgGetProcAddress("glTangent3svEXT");
	glBinormal3bEXT = (PFNGLBINORMAL3BEXTPROC) glgGetProcAddress("glBinormal3bEXT");
	glBinormal3bvEXT = (PFNGLBINORMAL3BVEXTPROC) glgGetProcAddress("glBinormal3bvEXT");
	glBinormal3dEXT = (PFNGLBINORMAL3DEXTPROC) glgGetProcAddress("glBinormal3dEXT");
	glBinormal3dvEXT = (PFNGLBINORMAL3DVEXTPROC) glgGetProcAddress("glBinormal3dvEXT");
	glBinormal3fEXT = (PFNGLBINORMAL3FEXTPROC) glgGetProcAddress("glBinormal3fEXT");
	glBinormal3fvEXT = (PFNGLBINORMAL3FVEXTPROC) glgGetProcAddress("glBinormal3fvEXT");
	glBinormal3iEXT = (PFNGLBINORMAL3IEXTPROC) glgGetProcAddress("glBinormal3iEXT");
	glBinormal3ivEXT = (PFNGLBINORMAL3IVEXTPROC) glgGetProcAddress("glBinormal3ivEXT");
	glBinormal3sEXT = (PFNGLBINORMAL3SEXTPROC) glgGetProcAddress("glBinormal3sEXT");
	glBinormal3svEXT = (PFNGLBINORMAL3SVEXTPROC) glgGetProcAddress("glBinormal3svEXT");
	glTangentPointerEXT = (PFNGLTANGENTPOINTEREXTPROC) glgGetProcAddress("glTangentPointerEXT");
	glBinormalPointerEXT = (PFNGLBINORMALPOINTEREXTPROC) glgGetProcAddress("glBinormalPointerEXT");

	// GL_SUNX_constant_data
	glFinishTextureSUNX = (PFNGLFINISHTEXTURESUNXPROC) glgGetProcAddress("glFinishTextureSUNX");

	// GL_SUN_global_alpha
	glGlobalAlphaFactorbSUN = (PFNGLGLOBALALPHAFACTORBSUNPROC) glgGetProcAddress("glGlobalAlphaFactorbSUN");
	glGlobalAlphaFactorsSUN = (PFNGLGLOBALALPHAFACTORSSUNPROC) glgGetProcAddress("glGlobalAlphaFactorsSUN");
	glGlobalAlphaFactoriSUN = (PFNGLGLOBALALPHAFACTORISUNPROC) glgGetProcAddress("glGlobalAlphaFactoriSUN");
	glGlobalAlphaFactorfSUN = (PFNGLGLOBALALPHAFACTORFSUNPROC) glgGetProcAddress("glGlobalAlphaFactorfSUN");
	glGlobalAlphaFactordSUN = (PFNGLGLOBALALPHAFACTORDSUNPROC) glgGetProcAddress("glGlobalAlphaFactordSUN");
	glGlobalAlphaFactorubSUN = (PFNGLGLOBALALPHAFACTORUBSUNPROC) glgGetProcAddress("glGlobalAlphaFactorubSUN");
	glGlobalAlphaFactorusSUN = (PFNGLGLOBALALPHAFACTORUSSUNPROC) glgGetProcAddress("glGlobalAlphaFactorusSUN");
	glGlobalAlphaFactoruiSUN = (PFNGLGLOBALALPHAFACTORUISUNPROC) glgGetProcAddress("glGlobalAlphaFactoruiSUN");

	// GL_SUN_triangle_list
	glReplacementCodeuiSUN = (PFNGLREPLACEMENTCODEUISUNPROC) glgGetProcAddress("glReplacementCodeuiSUN");
	glReplacementCodeusSUN = (PFNGLREPLACEMENTCODEUSSUNPROC) glgGetProcAddress("glReplacementCodeusSUN");
	glReplacementCodeubSUN = (PFNGLREPLACEMENTCODEUBSUNPROC) glgGetProcAddress("glReplacementCodeubSUN");
	glReplacementCodeuivSUN = (PFNGLREPLACEMENTCODEUIVSUNPROC) glgGetProcAddress("glReplacementCodeuivSUN");
	glReplacementCodeusvSUN = (PFNGLREPLACEMENTCODEUSVSUNPROC) glgGetProcAddress("glReplacementCodeusvSUN");
	glReplacementCodeubvSUN = (PFNGLREPLACEMENTCODEUBVSUNPROC) glgGetProcAddress("glReplacementCodeubvSUN");
	glReplacementCodePointerSUN = (PFNGLREPLACEMENTCODEPOINTERSUNPROC) glgGetProcAddress("glReplacementCodePointerSUN");

	// GL_SUN_vertex
	glColor4ubVertex2fSUN = (PFNGLCOLOR4UBVERTEX2FSUNPROC) glgGetProcAddress("glColor4ubVertex2fSUN");
	glColor4ubVertex2fvSUN = (PFNGLCOLOR4UBVERTEX2FVSUNPROC) glgGetProcAddress("glColor4ubVertex2fvSUN");
	glColor4ubVertex3fSUN = (PFNGLCOLOR4UBVERTEX3FSUNPROC) glgGetProcAddress("glColor4ubVertex3fSUN");
	glColor4ubVertex3fvSUN = (PFNGLCOLOR4UBVERTEX3FVSUNPROC) glgGetProcAddress("glColor4ubVertex3fvSUN");
	glColor3fVertex3fSUN = (PFNGLCOLOR3FVERTEX3FSUNPROC) glgGetProcAddress("glColor3fVertex3fSUN");
	glColor3fVertex3fvSUN = (PFNGLCOLOR3FVERTEX3FVSUNPROC) glgGetProcAddress("glColor3fVertex3fvSUN");
	glNormal3fVertex3fSUN = (PFNGLNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glNormal3fVertex3fSUN");
	glNormal3fVertex3fvSUN = (PFNGLNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glNormal3fVertex3fvSUN");
	glColor4fNormal3fVertex3fSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glColor4fNormal3fVertex3fSUN");
	glColor4fNormal3fVertex3fvSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glColor4fNormal3fVertex3fvSUN");
	glTexCoord2fVertex3fSUN = (PFNGLTEXCOORD2FVERTEX3FSUNPROC) glgGetProcAddress("glTexCoord2fVertex3fSUN");
	glTexCoord2fVertex3fvSUN = (PFNGLTEXCOORD2FVERTEX3FVSUNPROC) glgGetProcAddress("glTexCoord2fVertex3fvSUN");
	glTexCoord4fVertex4fSUN = (PFNGLTEXCOORD4FVERTEX4FSUNPROC) glgGetProcAddress("glTexCoord4fVertex4fSUN");
	glTexCoord4fVertex4fvSUN = (PFNGLTEXCOORD4FVERTEX4FVSUNPROC) glgGetProcAddress("glTexCoord4fVertex4fvSUN");
	glTexCoord2fColor4ubVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) glgGetProcAddress("glTexCoord2fColor4ubVertex3fSUN");
	glTexCoord2fColor4ubVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) glgGetProcAddress("glTexCoord2fColor4ubVertex3fvSUN");
	glTexCoord2fColor3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) glgGetProcAddress("glTexCoord2fColor3fVertex3fSUN");
	glTexCoord2fColor3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) glgGetProcAddress("glTexCoord2fColor3fVertex3fvSUN");
	glTexCoord2fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glTexCoord2fNormal3fVertex3fSUN");
	glTexCoord2fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glTexCoord2fNormal3fVertex3fvSUN");
	glTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glTexCoord2fColor4fNormal3fVertex3fSUN");
	glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glTexCoord2fColor4fNormal3fVertex3fvSUN");
	glTexCoord4fColor4fNormal3fVertex4fSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) glgGetProcAddress("glTexCoord4fColor4fNormal3fVertex4fSUN");
	glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) glgGetProcAddress("glTexCoord4fColor4fNormal3fVertex4fvSUN");
	glReplacementCodeuiVertex3fSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiVertex3fSUN");
	glReplacementCodeuiVertex3fvSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiVertex3fvSUN");
	glReplacementCodeuiColor4ubVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiColor4ubVertex3fSUN");
	glReplacementCodeuiColor4ubVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiColor4ubVertex3fvSUN");
	glReplacementCodeuiColor3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiColor3fVertex3fSUN");
	glReplacementCodeuiColor3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiColor3fVertex3fvSUN");
	glReplacementCodeuiNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiNormal3fVertex3fSUN");
	glReplacementCodeuiNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiNormal3fVertex3fvSUN");
	glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiColor4fNormal3fVertex3fSUN");
	glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiColor4fNormal3fVertex3fvSUN");
	glReplacementCodeuiTexCoord2fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fVertex3fSUN");
	glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fVertex3fvSUN");
	glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN");
	glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN");
	glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN");
	glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) glgGetProcAddress("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN");

	// GL_EXT_blend_func_separate
	glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC) glgGetProcAddress("glBlendFuncSeparateEXT");

	// GL_INGR_blend_func_separate
	glBlendFuncSeparateINGR = (PFNGLBLENDFUNCSEPARATEINGRPROC) glgGetProcAddress("glBlendFuncSeparateINGR");

	// GL_EXT_vertex_weighting
	glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC) glgGetProcAddress("glVertexWeightfEXT");
	glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC) glgGetProcAddress("glVertexWeightfvEXT");
	glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC) glgGetProcAddress("glVertexWeightPointerEXT");

	// GL_NV_vertex_array_range
	glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC) glgGetProcAddress("glFlushVertexArrayRangeNV");
	glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC) glgGetProcAddress("glVertexArrayRangeNV");

	// GL_NV_register_combiners
	glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC) glgGetProcAddress("glCombinerParameterfvNV");
	glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC) glgGetProcAddress("glCombinerParameterfNV");
	glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC) glgGetProcAddress("glCombinerParameterivNV");
	glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC) glgGetProcAddress("glCombinerParameteriNV");
	glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC) glgGetProcAddress("glCombinerInputNV");
	glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC) glgGetProcAddress("glCombinerOutputNV");
	glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC) glgGetProcAddress("glFinalCombinerInputNV");
	glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) glgGetProcAddress("glGetCombinerInputParameterfvNV");
	glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) glgGetProcAddress("glGetCombinerInputParameterivNV");
	glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) glgGetProcAddress("glGetCombinerOutputParameterfvNV");
	glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) glgGetProcAddress("glGetCombinerOutputParameterivNV");
	glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) glgGetProcAddress("glGetFinalCombinerInputParameterfvNV");
	glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) glgGetProcAddress("glGetFinalCombinerInputParameterivNV");

	// GL_MESA_resize_buffers
	glResizeBuffersMESA = (PFNGLRESIZEBUFFERSMESAPROC) glgGetProcAddress("glResizeBuffersMESA");

	// GL_MESA_window_pos
	glWindowPos2dMESA = (PFNGLWINDOWPOS2DMESAPROC) glgGetProcAddress("glWindowPos2dMESA");
	glWindowPos2dvMESA = (PFNGLWINDOWPOS2DVMESAPROC) glgGetProcAddress("glWindowPos2dvMESA");
	glWindowPos2fMESA = (PFNGLWINDOWPOS2FMESAPROC) glgGetProcAddress("glWindowPos2fMESA");
	glWindowPos2fvMESA = (PFNGLWINDOWPOS2FVMESAPROC) glgGetProcAddress("glWindowPos2fvMESA");
	glWindowPos2iMESA = (PFNGLWINDOWPOS2IMESAPROC) glgGetProcAddress("glWindowPos2iMESA");
	glWindowPos2ivMESA = (PFNGLWINDOWPOS2IVMESAPROC) glgGetProcAddress("glWindowPos2ivMESA");
	glWindowPos2sMESA = (PFNGLWINDOWPOS2SMESAPROC) glgGetProcAddress("glWindowPos2sMESA");
	glWindowPos2svMESA = (PFNGLWINDOWPOS2SVMESAPROC) glgGetProcAddress("glWindowPos2svMESA");
	glWindowPos3dMESA = (PFNGLWINDOWPOS3DMESAPROC) glgGetProcAddress("glWindowPos3dMESA");
	glWindowPos3dvMESA = (PFNGLWINDOWPOS3DVMESAPROC) glgGetProcAddress("glWindowPos3dvMESA");
	glWindowPos3fMESA = (PFNGLWINDOWPOS3FMESAPROC) glgGetProcAddress("glWindowPos3fMESA");
	glWindowPos3fvMESA = (PFNGLWINDOWPOS3FVMESAPROC) glgGetProcAddress("glWindowPos3fvMESA");
	glWindowPos3iMESA = (PFNGLWINDOWPOS3IMESAPROC) glgGetProcAddress("glWindowPos3iMESA");
	glWindowPos3ivMESA = (PFNGLWINDOWPOS3IVMESAPROC) glgGetProcAddress("glWindowPos3ivMESA");
	glWindowPos3sMESA = (PFNGLWINDOWPOS3SMESAPROC) glgGetProcAddress("glWindowPos3sMESA");
	glWindowPos3svMESA = (PFNGLWINDOWPOS3SVMESAPROC) glgGetProcAddress("glWindowPos3svMESA");
	glWindowPos4dMESA = (PFNGLWINDOWPOS4DMESAPROC) glgGetProcAddress("glWindowPos4dMESA");
	glWindowPos4dvMESA = (PFNGLWINDOWPOS4DVMESAPROC) glgGetProcAddress("glWindowPos4dvMESA");
	glWindowPos4fMESA = (PFNGLWINDOWPOS4FMESAPROC) glgGetProcAddress("glWindowPos4fMESA");
	glWindowPos4fvMESA = (PFNGLWINDOWPOS4FVMESAPROC) glgGetProcAddress("glWindowPos4fvMESA");
	glWindowPos4iMESA = (PFNGLWINDOWPOS4IMESAPROC) glgGetProcAddress("glWindowPos4iMESA");
	glWindowPos4ivMESA = (PFNGLWINDOWPOS4IVMESAPROC) glgGetProcAddress("glWindowPos4ivMESA");
	glWindowPos4sMESA = (PFNGLWINDOWPOS4SMESAPROC) glgGetProcAddress("glWindowPos4sMESA");
	glWindowPos4svMESA = (PFNGLWINDOWPOS4SVMESAPROC) glgGetProcAddress("glWindowPos4svMESA");

	// GL_IBM_multimode_draw_arrays
	glMultiModeDrawArraysIBM = (PFNGLMULTIMODEDRAWARRAYSIBMPROC) glgGetProcAddress("glMultiModeDrawArraysIBM");
	glMultiModeDrawElementsIBM = (PFNGLMULTIMODEDRAWELEMENTSIBMPROC) glgGetProcAddress("glMultiModeDrawElementsIBM");

	// GL_IBM_vertex_array_lists
	glColorPointerListIBM = (PFNGLCOLORPOINTERLISTIBMPROC) glgGetProcAddress("glColorPointerListIBM");
	glSecondaryColorPointerListIBM = (PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) glgGetProcAddress("glSecondaryColorPointerListIBM");
	glEdgeFlagPointerListIBM = (PFNGLEDGEFLAGPOINTERLISTIBMPROC) glgGetProcAddress("glEdgeFlagPointerListIBM");
	glFogCoordPointerListIBM = (PFNGLFOGCOORDPOINTERLISTIBMPROC) glgGetProcAddress("glFogCoordPointerListIBM");
	glIndexPointerListIBM = (PFNGLINDEXPOINTERLISTIBMPROC) glgGetProcAddress("glIndexPointerListIBM");
	glNormalPointerListIBM = (PFNGLNORMALPOINTERLISTIBMPROC) glgGetProcAddress("glNormalPointerListIBM");
	glTexCoordPointerListIBM = (PFNGLTEXCOORDPOINTERLISTIBMPROC) glgGetProcAddress("glTexCoordPointerListIBM");
	glVertexPointerListIBM = (PFNGLVERTEXPOINTERLISTIBMPROC) glgGetProcAddress("glVertexPointerListIBM");

	// GL_3DFX_tbuffer
	glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC) glgGetProcAddress("glTbufferMask3DFX");

	// GL_EXT_multisample
	glSampleMaskEXT = (PFNGLSAMPLEMASKEXTPROC) glgGetProcAddress("glSampleMaskEXT");
	glSamplePatternEXT = (PFNGLSAMPLEPATTERNEXTPROC) glgGetProcAddress("glSamplePatternEXT");

	// GL_SGIS_texture_color_mask
	glTextureColorMaskSGIS = (PFNGLTEXTURECOLORMASKSGISPROC) glgGetProcAddress("glTextureColorMaskSGIS");

	// GL_SGIX_igloo_interface
	glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC) glgGetProcAddress("glIglooInterfaceSGIX");

	// GL_NV_fence
	glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC) glgGetProcAddress("glDeleteFencesNV");
	glGenFencesNV = (PFNGLGENFENCESNVPROC) glgGetProcAddress("glGenFencesNV");
	glIsFenceNV = (PFNGLISFENCENVPROC) glgGetProcAddress("glIsFenceNV");
	glTestFenceNV = (PFNGLTESTFENCENVPROC) glgGetProcAddress("glTestFenceNV");
	glGetFenceivNV = (PFNGLGETFENCEIVNVPROC) glgGetProcAddress("glGetFenceivNV");
	glFinishFenceNV = (PFNGLFINISHFENCENVPROC) glgGetProcAddress("glFinishFenceNV");
	glSetFenceNV = (PFNGLSETFENCENVPROC) glgGetProcAddress("glSetFenceNV");

	// GL_NV_evaluators
	glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC) glgGetProcAddress("glMapControlPointsNV");
	glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC) glgGetProcAddress("glMapParameterivNV");
	glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC) glgGetProcAddress("glMapParameterfvNV");
	glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC) glgGetProcAddress("glGetMapControlPointsNV");
	glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC) glgGetProcAddress("glGetMapParameterivNV");
	glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC) glgGetProcAddress("glGetMapParameterfvNV");
	glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC) glgGetProcAddress("glGetMapAttribParameterivNV");
	glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC) glgGetProcAddress("glGetMapAttribParameterfvNV");
	glEvalMapsNV = (PFNGLEVALMAPSNVPROC) glgGetProcAddress("glEvalMapsNV");

	// GL_NV_register_combiners2
	glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) glgGetProcAddress("glCombinerStageParameterfvNV");
	glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) glgGetProcAddress("glGetCombinerStageParameterfvNV");

	// GL_NV_vertex_program
	glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC) glgGetProcAddress("glAreProgramsResidentNV");
	glBindProgramNV = (PFNGLBINDPROGRAMNVPROC) glgGetProcAddress("glBindProgramNV");
	glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC) glgGetProcAddress("glDeleteProgramsNV");
	glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC) glgGetProcAddress("glExecuteProgramNV");
	glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC) glgGetProcAddress("glGenProgramsNV");
	glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC) glgGetProcAddress("glGetProgramParameterdvNV");
	glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC) glgGetProcAddress("glGetProgramParameterfvNV");
	glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC) glgGetProcAddress("glGetProgramivNV");
	glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC) glgGetProcAddress("glGetProgramStringNV");
	glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC) glgGetProcAddress("glGetTrackMatrixivNV");
	glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC) glgGetProcAddress("glGetVertexAttribdvNV");
	glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC) glgGetProcAddress("glGetVertexAttribfvNV");
	glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC) glgGetProcAddress("glGetVertexAttribivNV");
	glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC) glgGetProcAddress("glGetVertexAttribPointervNV");
	glIsProgramNV = (PFNGLISPROGRAMNVPROC) glgGetProcAddress("glIsProgramNV");
	glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC) glgGetProcAddress("glLoadProgramNV");
	glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC) glgGetProcAddress("glProgramParameter4dNV");
	glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC) glgGetProcAddress("glProgramParameter4dvNV");
	glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC) glgGetProcAddress("glProgramParameter4fNV");
	glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC) glgGetProcAddress("glProgramParameter4fvNV");
	glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC) glgGetProcAddress("glProgramParameters4dvNV");
	glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC) glgGetProcAddress("glProgramParameters4fvNV");
	glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC) glgGetProcAddress("glRequestResidentProgramsNV");
	glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC) glgGetProcAddress("glTrackMatrixNV");
	glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC) glgGetProcAddress("glVertexAttribPointerNV");
	glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC) glgGetProcAddress("glVertexAttrib1dNV");
	glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC) glgGetProcAddress("glVertexAttrib1dvNV");
	glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC) glgGetProcAddress("glVertexAttrib1fNV");
	glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC) glgGetProcAddress("glVertexAttrib1fvNV");
	glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC) glgGetProcAddress("glVertexAttrib1sNV");
	glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC) glgGetProcAddress("glVertexAttrib1svNV");
	glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC) glgGetProcAddress("glVertexAttrib2dNV");
	glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC) glgGetProcAddress("glVertexAttrib2dvNV");
	glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC) glgGetProcAddress("glVertexAttrib2fNV");
	glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC) glgGetProcAddress("glVertexAttrib2fvNV");
	glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC) glgGetProcAddress("glVertexAttrib2sNV");
	glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC) glgGetProcAddress("glVertexAttrib2svNV");
	glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC) glgGetProcAddress("glVertexAttrib3dNV");
	glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC) glgGetProcAddress("glVertexAttrib3dvNV");
	glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC) glgGetProcAddress("glVertexAttrib3fNV");
	glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC) glgGetProcAddress("glVertexAttrib3fvNV");
	glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC) glgGetProcAddress("glVertexAttrib3sNV");
	glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC) glgGetProcAddress("glVertexAttrib3svNV");
	glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC) glgGetProcAddress("glVertexAttrib4dNV");
	glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC) glgGetProcAddress("glVertexAttrib4dvNV");
	glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC) glgGetProcAddress("glVertexAttrib4fNV");
	glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC) glgGetProcAddress("glVertexAttrib4fvNV");
	glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC) glgGetProcAddress("glVertexAttrib4sNV");
	glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC) glgGetProcAddress("glVertexAttrib4svNV");
	glVertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC) glgGetProcAddress("glVertexAttrib4ubNV");
	glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC) glgGetProcAddress("glVertexAttrib4ubvNV");
	glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC) glgGetProcAddress("glVertexAttribs1dvNV");
	glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC) glgGetProcAddress("glVertexAttribs1fvNV");
	glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC) glgGetProcAddress("glVertexAttribs1svNV");
	glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC) glgGetProcAddress("glVertexAttribs2dvNV");
	glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC) glgGetProcAddress("glVertexAttribs2fvNV");
	glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC) glgGetProcAddress("glVertexAttribs2svNV");
	glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC) glgGetProcAddress("glVertexAttribs3dvNV");
	glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC) glgGetProcAddress("glVertexAttribs3fvNV");
	glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC) glgGetProcAddress("glVertexAttribs3svNV");
	glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC) glgGetProcAddress("glVertexAttribs4dvNV");
	glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC) glgGetProcAddress("glVertexAttribs4fvNV");
	glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC) glgGetProcAddress("glVertexAttribs4svNV");
	glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC) glgGetProcAddress("glVertexAttribs4ubvNV");

	// GL_ATI_envmap_bumpmap
	glTexBumpParameterivATI = (PFNGLTEXBUMPPARAMETERIVATIPROC) glgGetProcAddress("glTexBumpParameterivATI");
	glTexBumpParameterfvATI = (PFNGLTEXBUMPPARAMETERFVATIPROC) glgGetProcAddress("glTexBumpParameterfvATI");
	glGetTexBumpParameterivATI = (PFNGLGETTEXBUMPPARAMETERIVATIPROC) glgGetProcAddress("glGetTexBumpParameterivATI");
	glGetTexBumpParameterfvATI = (PFNGLGETTEXBUMPPARAMETERFVATIPROC) glgGetProcAddress("glGetTexBumpParameterfvATI");

	// GL_ATI_fragment_shader
	glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC) glgGetProcAddress("glGenFragmentShadersATI");
	glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC) glgGetProcAddress("glBindFragmentShaderATI");
	glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC) glgGetProcAddress("glDeleteFragmentShaderATI");
	glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC) glgGetProcAddress("glBeginFragmentShaderATI");
	glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC) glgGetProcAddress("glEndFragmentShaderATI");
	glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC) glgGetProcAddress("glPassTexCoordATI");
	glSampleMapATI = (PFNGLSAMPLEMAPATIPROC) glgGetProcAddress("glSampleMapATI");
	glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC) glgGetProcAddress("glColorFragmentOp1ATI");
	glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC) glgGetProcAddress("glColorFragmentOp2ATI");
	glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC) glgGetProcAddress("glColorFragmentOp3ATI");
	glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC) glgGetProcAddress("glAlphaFragmentOp1ATI");
	glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC) glgGetProcAddress("glAlphaFragmentOp2ATI");
	glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC) glgGetProcAddress("glAlphaFragmentOp3ATI");
	glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) glgGetProcAddress("glSetFragmentShaderConstantATI");

	// GL_ATI_pn_triangles
	glPNTrianglesiATI = (PFNGLPNTRIANGLESIATIPROC) glgGetProcAddress("glPNTrianglesiATI");
	glPNTrianglesfATI = (PFNGLPNTRIANGLESFATIPROC) glgGetProcAddress("glPNTrianglesfATI");

	// GL_ATI_vertex_array_object
	glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC) glgGetProcAddress("glNewObjectBufferATI");
	glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC) glgGetProcAddress("glIsObjectBufferATI");
	glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC) glgGetProcAddress("glUpdateObjectBufferATI");
	glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC) glgGetProcAddress("glGetObjectBufferfvATI");
	glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC) glgGetProcAddress("glGetObjectBufferivATI");
	glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC) glgGetProcAddress("glFreeObjectBufferATI");
	glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC) glgGetProcAddress("glArrayObjectATI");
	glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC) glgGetProcAddress("glGetArrayObjectfvATI");
	glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC) glgGetProcAddress("glGetArrayObjectivATI");
	glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC) glgGetProcAddress("glVariantArrayObjectATI");
	glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC) glgGetProcAddress("glGetVariantArrayObjectfvATI");
	glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC) glgGetProcAddress("glGetVariantArrayObjectivATI");

	// GL_EXT_vertex_shader
	glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC) glgGetProcAddress("glBeginVertexShaderEXT");
	glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC) glgGetProcAddress("glEndVertexShaderEXT");
	glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC) glgGetProcAddress("glBindVertexShaderEXT");
	glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC) glgGetProcAddress("glGenVertexShadersEXT");
	glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC) glgGetProcAddress("glDeleteVertexShaderEXT");
	glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC) glgGetProcAddress("glShaderOp1EXT");
	glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC) glgGetProcAddress("glShaderOp2EXT");
	glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC) glgGetProcAddress("glShaderOp3EXT");
	glSwizzleEXT = (PFNGLSWIZZLEEXTPROC) glgGetProcAddress("glSwizzleEXT");
	glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC) glgGetProcAddress("glWriteMaskEXT");
	glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC) glgGetProcAddress("glInsertComponentEXT");
	glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC) glgGetProcAddress("glExtractComponentEXT");
	glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC) glgGetProcAddress("glGenSymbolsEXT");
	glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC) glgGetProcAddress("glSetInvariantEXT");
	glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC) glgGetProcAddress("glSetLocalConstantEXT");
	glVariantbvEXT = (PFNGLVARIANTBVEXTPROC) glgGetProcAddress("glVariantbvEXT");
	glVariantsvEXT = (PFNGLVARIANTSVEXTPROC) glgGetProcAddress("glVariantsvEXT");
	glVariantivEXT = (PFNGLVARIANTIVEXTPROC) glgGetProcAddress("glVariantivEXT");
	glVariantfvEXT = (PFNGLVARIANTFVEXTPROC) glgGetProcAddress("glVariantfvEXT");
	glVariantdvEXT = (PFNGLVARIANTDVEXTPROC) glgGetProcAddress("glVariantdvEXT");
	glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC) glgGetProcAddress("glVariantubvEXT");
	glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC) glgGetProcAddress("glVariantusvEXT");
	glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC) glgGetProcAddress("glVariantuivEXT");
	glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC) glgGetProcAddress("glVariantPointerEXT");
	glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) glgGetProcAddress("glEnableVariantClientStateEXT");
	glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) glgGetProcAddress("glDisableVariantClientStateEXT");
	glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC) glgGetProcAddress("glBindLightParameterEXT");
	glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC) glgGetProcAddress("glBindMaterialParameterEXT");
	glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC) glgGetProcAddress("glBindTexGenParameterEXT");
	glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) glgGetProcAddress("glBindTextureUnitParameterEXT");
	glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC) glgGetProcAddress("glBindParameterEXT");
	glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC) glgGetProcAddress("glIsVariantEnabledEXT");
	glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC) glgGetProcAddress("glGetVariantBooleanvEXT");
	glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC) glgGetProcAddress("glGetVariantIntegervEXT");
	glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC) glgGetProcAddress("glGetVariantFloatvEXT");
	glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC) glgGetProcAddress("glGetVariantPointervEXT");
	glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC) glgGetProcAddress("glGetInvariantBooleanvEXT");
	glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC) glgGetProcAddress("glGetInvariantIntegervEXT");
	glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC) glgGetProcAddress("glGetInvariantFloatvEXT");
	glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) glgGetProcAddress("glGetLocalConstantBooleanvEXT");
	glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) glgGetProcAddress("glGetLocalConstantIntegervEXT");
	glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC) glgGetProcAddress("glGetLocalConstantFloatvEXT");

	// GL_ATI_vertex_streams
	glVertexStream1sATI = (PFNGLVERTEXSTREAM1SATIPROC) glgGetProcAddress("glVertexStream1sATI");
	glVertexStream1svATI = (PFNGLVERTEXSTREAM1SVATIPROC) glgGetProcAddress("glVertexStream1svATI");
	glVertexStream1iATI = (PFNGLVERTEXSTREAM1IATIPROC) glgGetProcAddress("glVertexStream1iATI");
	glVertexStream1ivATI = (PFNGLVERTEXSTREAM1IVATIPROC) glgGetProcAddress("glVertexStream1ivATI");
	glVertexStream1fATI = (PFNGLVERTEXSTREAM1FATIPROC) glgGetProcAddress("glVertexStream1fATI");
	glVertexStream1fvATI = (PFNGLVERTEXSTREAM1FVATIPROC) glgGetProcAddress("glVertexStream1fvATI");
	glVertexStream1dATI = (PFNGLVERTEXSTREAM1DATIPROC) glgGetProcAddress("glVertexStream1dATI");
	glVertexStream1dvATI = (PFNGLVERTEXSTREAM1DVATIPROC) glgGetProcAddress("glVertexStream1dvATI");
	glVertexStream2sATI = (PFNGLVERTEXSTREAM2SATIPROC) glgGetProcAddress("glVertexStream2sATI");
	glVertexStream2svATI = (PFNGLVERTEXSTREAM2SVATIPROC) glgGetProcAddress("glVertexStream2svATI");
	glVertexStream2iATI = (PFNGLVERTEXSTREAM2IATIPROC) glgGetProcAddress("glVertexStream2iATI");
	glVertexStream2ivATI = (PFNGLVERTEXSTREAM2IVATIPROC) glgGetProcAddress("glVertexStream2ivATI");
	glVertexStream2fATI = (PFNGLVERTEXSTREAM2FATIPROC) glgGetProcAddress("glVertexStream2fATI");
	glVertexStream2fvATI = (PFNGLVERTEXSTREAM2FVATIPROC) glgGetProcAddress("glVertexStream2fvATI");
	glVertexStream2dATI = (PFNGLVERTEXSTREAM2DATIPROC) glgGetProcAddress("glVertexStream2dATI");
	glVertexStream2dvATI = (PFNGLVERTEXSTREAM2DVATIPROC) glgGetProcAddress("glVertexStream2dvATI");
	glVertexStream3sATI = (PFNGLVERTEXSTREAM3SATIPROC) glgGetProcAddress("glVertexStream3sATI");
	glVertexStream3svATI = (PFNGLVERTEXSTREAM3SVATIPROC) glgGetProcAddress("glVertexStream3svATI");
	glVertexStream3iATI = (PFNGLVERTEXSTREAM3IATIPROC) glgGetProcAddress("glVertexStream3iATI");
	glVertexStream3ivATI = (PFNGLVERTEXSTREAM3IVATIPROC) glgGetProcAddress("glVertexStream3ivATI");
	glVertexStream3fATI = (PFNGLVERTEXSTREAM3FATIPROC) glgGetProcAddress("glVertexStream3fATI");
	glVertexStream3fvATI = (PFNGLVERTEXSTREAM3FVATIPROC) glgGetProcAddress("glVertexStream3fvATI");
	glVertexStream3dATI = (PFNGLVERTEXSTREAM3DATIPROC) glgGetProcAddress("glVertexStream3dATI");
	glVertexStream3dvATI = (PFNGLVERTEXSTREAM3DVATIPROC) glgGetProcAddress("glVertexStream3dvATI");
	glVertexStream4sATI = (PFNGLVERTEXSTREAM4SATIPROC) glgGetProcAddress("glVertexStream4sATI");
	glVertexStream4svATI = (PFNGLVERTEXSTREAM4SVATIPROC) glgGetProcAddress("glVertexStream4svATI");
	glVertexStream4iATI = (PFNGLVERTEXSTREAM4IATIPROC) glgGetProcAddress("glVertexStream4iATI");
	glVertexStream4ivATI = (PFNGLVERTEXSTREAM4IVATIPROC) glgGetProcAddress("glVertexStream4ivATI");
	glVertexStream4fATI = (PFNGLVERTEXSTREAM4FATIPROC) glgGetProcAddress("glVertexStream4fATI");
	glVertexStream4fvATI = (PFNGLVERTEXSTREAM4FVATIPROC) glgGetProcAddress("glVertexStream4fvATI");
	glVertexStream4dATI = (PFNGLVERTEXSTREAM4DATIPROC) glgGetProcAddress("glVertexStream4dATI");
	glVertexStream4dvATI = (PFNGLVERTEXSTREAM4DVATIPROC) glgGetProcAddress("glVertexStream4dvATI");
	glNormalStream3bATI = (PFNGLNORMALSTREAM3BATIPROC) glgGetProcAddress("glNormalStream3bATI");
	glNormalStream3bvATI = (PFNGLNORMALSTREAM3BVATIPROC) glgGetProcAddress("glNormalStream3bvATI");
	glNormalStream3sATI = (PFNGLNORMALSTREAM3SATIPROC) glgGetProcAddress("glNormalStream3sATI");
	glNormalStream3svATI = (PFNGLNORMALSTREAM3SVATIPROC) glgGetProcAddress("glNormalStream3svATI");
	glNormalStream3iATI = (PFNGLNORMALSTREAM3IATIPROC) glgGetProcAddress("glNormalStream3iATI");
	glNormalStream3ivATI = (PFNGLNORMALSTREAM3IVATIPROC) glgGetProcAddress("glNormalStream3ivATI");
	glNormalStream3fATI = (PFNGLNORMALSTREAM3FATIPROC) glgGetProcAddress("glNormalStream3fATI");
	glNormalStream3fvATI = (PFNGLNORMALSTREAM3FVATIPROC) glgGetProcAddress("glNormalStream3fvATI");
	glNormalStream3dATI = (PFNGLNORMALSTREAM3DATIPROC) glgGetProcAddress("glNormalStream3dATI");
	glNormalStream3dvATI = (PFNGLNORMALSTREAM3DVATIPROC) glgGetProcAddress("glNormalStream3dvATI");
	glClientActiveVertexStreamATI = (PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) glgGetProcAddress("glClientActiveVertexStreamATI");
	glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC) glgGetProcAddress("glVertexBlendEnviATI");
	glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC) glgGetProcAddress("glVertexBlendEnvfATI");

	// GL_ATI_element_array
	glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC) glgGetProcAddress("glElementPointerATI");
	glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC) glgGetProcAddress("glDrawElementArrayATI");
	glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC) glgGetProcAddress("glDrawRangeElementArrayATI");

	// GL_SUN_mesh_array
	glDrawMeshArraysSUN = (PFNGLDRAWMESHARRAYSSUNPROC) glgGetProcAddress("glDrawMeshArraysSUN");

	// GL_NV_occlusion_query
	glGenOcclusionQueriesNV = (PFNGLGENOCCLUSIONQUERIESNVPROC) glgGetProcAddress("glGenOcclusionQueriesNV");
	glDeleteOcclusionQueriesNV = (PFNGLDELETEOCCLUSIONQUERIESNVPROC) glgGetProcAddress("glDeleteOcclusionQueriesNV");
	glIsOcclusionQueryNV = (PFNGLISOCCLUSIONQUERYNVPROC) glgGetProcAddress("glIsOcclusionQueryNV");
	glBeginOcclusionQueryNV = (PFNGLBEGINOCCLUSIONQUERYNVPROC) glgGetProcAddress("glBeginOcclusionQueryNV");
	glEndOcclusionQueryNV = (PFNGLENDOCCLUSIONQUERYNVPROC) glgGetProcAddress("glEndOcclusionQueryNV");
	glGetOcclusionQueryivNV = (PFNGLGETOCCLUSIONQUERYIVNVPROC) glgGetProcAddress("glGetOcclusionQueryivNV");
	glGetOcclusionQueryuivNV = (PFNGLGETOCCLUSIONQUERYUIVNVPROC) glgGetProcAddress("glGetOcclusionQueryuivNV");

	// GL_NV_point_sprite
	glPointParameteriNV = (PFNGLPOINTPARAMETERINVPROC) glgGetProcAddress("glPointParameteriNV");
	glPointParameterivNV = (PFNGLPOINTPARAMETERIVNVPROC) glgGetProcAddress("glPointParameterivNV");

	// GL_EXT_stencil_two_side
	glActiveStencilFaceEXT = (PFNGLACTIVESTENCILFACEEXTPROC) glgGetProcAddress("glActiveStencilFaceEXT");

	// GL_APPLE_element_array
	glElementPointerAPPLE = (PFNGLELEMENTPOINTERAPPLEPROC) glgGetProcAddress("glElementPointerAPPLE");
	glDrawElementArrayAPPLE = (PFNGLDRAWELEMENTARRAYAPPLEPROC) glgGetProcAddress("glDrawElementArrayAPPLE");
	glDrawRangeElementArrayAPPLE = (PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) glgGetProcAddress("glDrawRangeElementArrayAPPLE");
	glMultiDrawElementArrayAPPLE = (PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) glgGetProcAddress("glMultiDrawElementArrayAPPLE");
	glMultiDrawRangeElementArrayAPPLE = (PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) glgGetProcAddress("glMultiDrawRangeElementArrayAPPLE");

	// GL_APPLE_fence
	glGenFencesAPPLE = (PFNGLGENFENCESAPPLEPROC) glgGetProcAddress("glGenFencesAPPLE");
	glDeleteFencesAPPLE = (PFNGLDELETEFENCESAPPLEPROC) glgGetProcAddress("glDeleteFencesAPPLE");
	glSetFenceAPPLE = (PFNGLSETFENCEAPPLEPROC) glgGetProcAddress("glSetFenceAPPLE");
	glIsFenceAPPLE = (PFNGLISFENCEAPPLEPROC) glgGetProcAddress("glIsFenceAPPLE");
	glTestFenceAPPLE = (PFNGLTESTFENCEAPPLEPROC) glgGetProcAddress("glTestFenceAPPLE");
	glFinishFenceAPPLE = (PFNGLFINISHFENCEAPPLEPROC) glgGetProcAddress("glFinishFenceAPPLE");
	glTestObjectAPPLE = (PFNGLTESTOBJECTAPPLEPROC) glgGetProcAddress("glTestObjectAPPLE");
	glFinishObjectAPPLE = (PFNGLFINISHOBJECTAPPLEPROC) glgGetProcAddress("glFinishObjectAPPLE");

	// GL_APPLE_vertex_array_object
	glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC) glgGetProcAddress("glBindVertexArrayAPPLE");
	glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC) glgGetProcAddress("glDeleteVertexArraysAPPLE");
	glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC) glgGetProcAddress("glGenVertexArraysAPPLE");
	glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC) glgGetProcAddress("glIsVertexArrayAPPLE");

	// GL_APPLE_vertex_array_range
	glVertexArrayRangeAPPLE = (PFNGLVERTEXARRAYRANGEAPPLEPROC) glgGetProcAddress("glVertexArrayRangeAPPLE");
	glFlushVertexArrayRangeAPPLE = (PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) glgGetProcAddress("glFlushVertexArrayRangeAPPLE");
	glVertexArrayParameteriAPPLE = (PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) glgGetProcAddress("glVertexArrayParameteriAPPLE");

	// GL_ATI_draw_buffers
	glDrawBuffersATI = (PFNGLDRAWBUFFERSATIPROC) glgGetProcAddress("glDrawBuffersATI");

	// GL_NV_fragment_program
	glProgramNamedParameter4fNV = (PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) glgGetProcAddress("glProgramNamedParameter4fNV");
	glProgramNamedParameter4dNV = (PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) glgGetProcAddress("glProgramNamedParameter4dNV");
	glProgramNamedParameter4fvNV = (PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) glgGetProcAddress("glProgramNamedParameter4fvNV");
	glProgramNamedParameter4dvNV = (PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) glgGetProcAddress("glProgramNamedParameter4dvNV");
	glGetProgramNamedParameterfvNV = (PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) glgGetProcAddress("glGetProgramNamedParameterfvNV");
	glGetProgramNamedParameterdvNV = (PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) glgGetProcAddress("glGetProgramNamedParameterdvNV");

	// GL_NV_half_float
	glVertex2hNV = (PFNGLVERTEX2HNVPROC) glgGetProcAddress("glVertex2hNV");
	glVertex2hvNV = (PFNGLVERTEX2HVNVPROC) glgGetProcAddress("glVertex2hvNV");
	glVertex3hNV = (PFNGLVERTEX3HNVPROC) glgGetProcAddress("glVertex3hNV");
	glVertex3hvNV = (PFNGLVERTEX3HVNVPROC) glgGetProcAddress("glVertex3hvNV");
	glVertex4hNV = (PFNGLVERTEX4HNVPROC) glgGetProcAddress("glVertex4hNV");
	glVertex4hvNV = (PFNGLVERTEX4HVNVPROC) glgGetProcAddress("glVertex4hvNV");
	glNormal3hNV = (PFNGLNORMAL3HNVPROC) glgGetProcAddress("glNormal3hNV");
	glNormal3hvNV = (PFNGLNORMAL3HVNVPROC) glgGetProcAddress("glNormal3hvNV");
	glColor3hNV = (PFNGLCOLOR3HNVPROC) glgGetProcAddress("glColor3hNV");
	glColor3hvNV = (PFNGLCOLOR3HVNVPROC) glgGetProcAddress("glColor3hvNV");
	glColor4hNV = (PFNGLCOLOR4HNVPROC) glgGetProcAddress("glColor4hNV");
	glColor4hvNV = (PFNGLCOLOR4HVNVPROC) glgGetProcAddress("glColor4hvNV");
	glTexCoord1hNV = (PFNGLTEXCOORD1HNVPROC) glgGetProcAddress("glTexCoord1hNV");
	glTexCoord1hvNV = (PFNGLTEXCOORD1HVNVPROC) glgGetProcAddress("glTexCoord1hvNV");
	glTexCoord2hNV = (PFNGLTEXCOORD2HNVPROC) glgGetProcAddress("glTexCoord2hNV");
	glTexCoord2hvNV = (PFNGLTEXCOORD2HVNVPROC) glgGetProcAddress("glTexCoord2hvNV");
	glTexCoord3hNV = (PFNGLTEXCOORD3HNVPROC) glgGetProcAddress("glTexCoord3hNV");
	glTexCoord3hvNV = (PFNGLTEXCOORD3HVNVPROC) glgGetProcAddress("glTexCoord3hvNV");
	glTexCoord4hNV = (PFNGLTEXCOORD4HNVPROC) glgGetProcAddress("glTexCoord4hNV");
	glTexCoord4hvNV = (PFNGLTEXCOORD4HVNVPROC) glgGetProcAddress("glTexCoord4hvNV");
	glMultiTexCoord1hNV = (PFNGLMULTITEXCOORD1HNVPROC) glgGetProcAddress("glMultiTexCoord1hNV");
	glMultiTexCoord1hvNV = (PFNGLMULTITEXCOORD1HVNVPROC) glgGetProcAddress("glMultiTexCoord1hvNV");
	glMultiTexCoord2hNV = (PFNGLMULTITEXCOORD2HNVPROC) glgGetProcAddress("glMultiTexCoord2hNV");
	glMultiTexCoord2hvNV = (PFNGLMULTITEXCOORD2HVNVPROC) glgGetProcAddress("glMultiTexCoord2hvNV");
	glMultiTexCoord3hNV = (PFNGLMULTITEXCOORD3HNVPROC) glgGetProcAddress("glMultiTexCoord3hNV");
	glMultiTexCoord3hvNV = (PFNGLMULTITEXCOORD3HVNVPROC) glgGetProcAddress("glMultiTexCoord3hvNV");
	glMultiTexCoord4hNV = (PFNGLMULTITEXCOORD4HNVPROC) glgGetProcAddress("glMultiTexCoord4hNV");
	glMultiTexCoord4hvNV = (PFNGLMULTITEXCOORD4HVNVPROC) glgGetProcAddress("glMultiTexCoord4hvNV");
	glFogCoordhNV = (PFNGLFOGCOORDHNVPROC) glgGetProcAddress("glFogCoordhNV");
	glFogCoordhvNV = (PFNGLFOGCOORDHVNVPROC) glgGetProcAddress("glFogCoordhvNV");
	glSecondaryColor3hNV = (PFNGLSECONDARYCOLOR3HNVPROC) glgGetProcAddress("glSecondaryColor3hNV");
	glSecondaryColor3hvNV = (PFNGLSECONDARYCOLOR3HVNVPROC) glgGetProcAddress("glSecondaryColor3hvNV");
	glVertexWeighthNV = (PFNGLVERTEXWEIGHTHNVPROC) glgGetProcAddress("glVertexWeighthNV");
	glVertexWeighthvNV = (PFNGLVERTEXWEIGHTHVNVPROC) glgGetProcAddress("glVertexWeighthvNV");
	glVertexAttrib1hNV = (PFNGLVERTEXATTRIB1HNVPROC) glgGetProcAddress("glVertexAttrib1hNV");
	glVertexAttrib1hvNV = (PFNGLVERTEXATTRIB1HVNVPROC) glgGetProcAddress("glVertexAttrib1hvNV");
	glVertexAttrib2hNV = (PFNGLVERTEXATTRIB2HNVPROC) glgGetProcAddress("glVertexAttrib2hNV");
	glVertexAttrib2hvNV = (PFNGLVERTEXATTRIB2HVNVPROC) glgGetProcAddress("glVertexAttrib2hvNV");
	glVertexAttrib3hNV = (PFNGLVERTEXATTRIB3HNVPROC) glgGetProcAddress("glVertexAttrib3hNV");
	glVertexAttrib3hvNV = (PFNGLVERTEXATTRIB3HVNVPROC) glgGetProcAddress("glVertexAttrib3hvNV");
	glVertexAttrib4hNV = (PFNGLVERTEXATTRIB4HNVPROC) glgGetProcAddress("glVertexAttrib4hNV");
	glVertexAttrib4hvNV = (PFNGLVERTEXATTRIB4HVNVPROC) glgGetProcAddress("glVertexAttrib4hvNV");
	glVertexAttribs1hvNV = (PFNGLVERTEXATTRIBS1HVNVPROC) glgGetProcAddress("glVertexAttribs1hvNV");
	glVertexAttribs2hvNV = (PFNGLVERTEXATTRIBS2HVNVPROC) glgGetProcAddress("glVertexAttribs2hvNV");
	glVertexAttribs3hvNV = (PFNGLVERTEXATTRIBS3HVNVPROC) glgGetProcAddress("glVertexAttribs3hvNV");
	glVertexAttribs4hvNV = (PFNGLVERTEXATTRIBS4HVNVPROC) glgGetProcAddress("glVertexAttribs4hvNV");

	// GL_NV_pixel_data_range
	glPixelDataRangeNV = (PFNGLPIXELDATARANGENVPROC) glgGetProcAddress("glPixelDataRangeNV");
	glFlushPixelDataRangeNV = (PFNGLFLUSHPIXELDATARANGENVPROC) glgGetProcAddress("glFlushPixelDataRangeNV");

	// GL_NV_primitive_restart
	glPrimitiveRestartNV = (PFNGLPRIMITIVERESTARTNVPROC) glgGetProcAddress("glPrimitiveRestartNV");
	glPrimitiveRestartIndexNV = (PFNGLPRIMITIVERESTARTINDEXNVPROC) glgGetProcAddress("glPrimitiveRestartIndexNV");

	// GL_ATI_map_object_buffer
	glMapObjectBufferATI = (PFNGLMAPOBJECTBUFFERATIPROC) glgGetProcAddress("glMapObjectBufferATI");
	glUnmapObjectBufferATI = (PFNGLUNMAPOBJECTBUFFERATIPROC) glgGetProcAddress("glUnmapObjectBufferATI");

	// GL_ATI_separate_stencil
	glStencilOpSeparateATI = (PFNGLSTENCILOPSEPARATEATIPROC) glgGetProcAddress("glStencilOpSeparateATI");
	glStencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC) glgGetProcAddress("glStencilFuncSeparateATI");

	// GL_ATI_vertex_attrib_array_object
	glVertexAttribArrayObjectATI = (PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) glgGetProcAddress("glVertexAttribArrayObjectATI");
	glGetVertexAttribArrayObjectfvATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) glgGetProcAddress("glGetVertexAttribArrayObjectfvATI");
	glGetVertexAttribArrayObjectivATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) glgGetProcAddress("glGetVertexAttribArrayObjectivATI");

	// GL_EXT_depth_bounds_test
	glDepthBoundsEXT = (PFNGLDEPTHBOUNDSEXTPROC) glgGetProcAddress("glDepthBoundsEXT");

	// GL_EXT_blend_equation_separate
	glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC) glgGetProcAddress("glBlendEquationSeparateEXT");

	// GL_EXT_framebuffer_object
	glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC) glgGetProcAddress("glIsRenderbufferEXT");
	glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC) glgGetProcAddress("glBindRenderbufferEXT");
	glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC) glgGetProcAddress("glDeleteRenderbuffersEXT");
	glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC) glgGetProcAddress("glGenRenderbuffersEXT");
	glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC) glgGetProcAddress("glRenderbufferStorageEXT");
	glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) glgGetProcAddress("glGetRenderbufferParameterivEXT");
	glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC) glgGetProcAddress("glIsFramebufferEXT");
	glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC) glgGetProcAddress("glBindFramebufferEXT");
	glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC) glgGetProcAddress("glDeleteFramebuffersEXT");
	glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC) glgGetProcAddress("glGenFramebuffersEXT");
	glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) glgGetProcAddress("glCheckFramebufferStatusEXT");
	glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) glgGetProcAddress("glFramebufferTexture1DEXT");
	glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) glgGetProcAddress("glFramebufferTexture2DEXT");
	glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) glgGetProcAddress("glFramebufferTexture3DEXT");
	glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) glgGetProcAddress("glFramebufferRenderbufferEXT");
	glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) glgGetProcAddress("glGetFramebufferAttachmentParameterivEXT");
	glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC) glgGetProcAddress("glGenerateMipmapEXT");

	// GL_GREMEDY_string_marker
	glStringMarkerGREMEDY = (PFNGLSTRINGMARKERGREMEDYPROC) glgGetProcAddress("glStringMarkerGREMEDY");

	// GL_EXT_stencil_clear_tag
	glStencilClearTagEXT = (PFNGLSTENCILCLEARTAGEXTPROC) glgGetProcAddress("glStencilClearTagEXT");

	// GL_EXT_framebuffer_blit
	glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC) glgGetProcAddress("glBlitFramebufferEXT");

	// GL_EXT_framebuffer_multisample
	glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) glgGetProcAddress("glRenderbufferStorageMultisampleEXT");

	// GL_EXT_timer_query
	glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC) glgGetProcAddress("glGetQueryObjecti64vEXT");
	glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC) glgGetProcAddress("glGetQueryObjectui64vEXT");

	// GL_EXT_gpu_program_parameters
	glProgramEnvParameters4fvEXT = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) glgGetProcAddress("glProgramEnvParameters4fvEXT");
	glProgramLocalParameters4fvEXT = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) glgGetProcAddress("glProgramLocalParameters4fvEXT");

	// GL_APPLE_flush_buffer_range
	glBufferParameteriAPPLE = (PFNGLBUFFERPARAMETERIAPPLEPROC) glgGetProcAddress("glBufferParameteriAPPLE");
	glFlushMappedBufferRangeAPPLE = (PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) glgGetProcAddress("glFlushMappedBufferRangeAPPLE");

	// GL_NV_gpu_program4
	glProgramLocalParameterI4iNV = (PFNGLPROGRAMLOCALPARAMETERI4INVPROC) glgGetProcAddress("glProgramLocalParameterI4iNV");
	glProgramLocalParameterI4ivNV = (PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) glgGetProcAddress("glProgramLocalParameterI4ivNV");
	glProgramLocalParametersI4ivNV = (PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) glgGetProcAddress("glProgramLocalParametersI4ivNV");
	glProgramLocalParameterI4uiNV = (PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) glgGetProcAddress("glProgramLocalParameterI4uiNV");
	glProgramLocalParameterI4uivNV = (PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) glgGetProcAddress("glProgramLocalParameterI4uivNV");
	glProgramLocalParametersI4uivNV = (PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) glgGetProcAddress("glProgramLocalParametersI4uivNV");
	glProgramEnvParameterI4iNV = (PFNGLPROGRAMENVPARAMETERI4INVPROC) glgGetProcAddress("glProgramEnvParameterI4iNV");
	glProgramEnvParameterI4ivNV = (PFNGLPROGRAMENVPARAMETERI4IVNVPROC) glgGetProcAddress("glProgramEnvParameterI4ivNV");
	glProgramEnvParametersI4ivNV = (PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) glgGetProcAddress("glProgramEnvParametersI4ivNV");
	glProgramEnvParameterI4uiNV = (PFNGLPROGRAMENVPARAMETERI4UINVPROC) glgGetProcAddress("glProgramEnvParameterI4uiNV");
	glProgramEnvParameterI4uivNV = (PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) glgGetProcAddress("glProgramEnvParameterI4uivNV");
	glProgramEnvParametersI4uivNV = (PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) glgGetProcAddress("glProgramEnvParametersI4uivNV");
	glGetProgramLocalParameterIivNV = (PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) glgGetProcAddress("glGetProgramLocalParameterIivNV");
	glGetProgramLocalParameterIuivNV = (PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) glgGetProcAddress("glGetProgramLocalParameterIuivNV");
	glGetProgramEnvParameterIivNV = (PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) glgGetProcAddress("glGetProgramEnvParameterIivNV");
	glGetProgramEnvParameterIuivNV = (PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) glgGetProcAddress("glGetProgramEnvParameterIuivNV");

	// GL_NV_geometry_program4
	glProgramVertexLimitNV = (PFNGLPROGRAMVERTEXLIMITNVPROC) glgGetProcAddress("glProgramVertexLimitNV");
	glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC) glgGetProcAddress("glFramebufferTextureEXT");
	glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) glgGetProcAddress("glFramebufferTextureLayerEXT");
	glFramebufferTextureFaceEXT = (PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) glgGetProcAddress("glFramebufferTextureFaceEXT");

	// GL_EXT_geometry_shader4
	glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC) glgGetProcAddress("glProgramParameteriEXT");

	// GL_NV_vertex_program4
	glVertexAttribI1iEXT = (PFNGLVERTEXATTRIBI1IEXTPROC) glgGetProcAddress("glVertexAttribI1iEXT");
	glVertexAttribI2iEXT = (PFNGLVERTEXATTRIBI2IEXTPROC) glgGetProcAddress("glVertexAttribI2iEXT");
	glVertexAttribI3iEXT = (PFNGLVERTEXATTRIBI3IEXTPROC) glgGetProcAddress("glVertexAttribI3iEXT");
	glVertexAttribI4iEXT = (PFNGLVERTEXATTRIBI4IEXTPROC) glgGetProcAddress("glVertexAttribI4iEXT");
	glVertexAttribI1uiEXT = (PFNGLVERTEXATTRIBI1UIEXTPROC) glgGetProcAddress("glVertexAttribI1uiEXT");
	glVertexAttribI2uiEXT = (PFNGLVERTEXATTRIBI2UIEXTPROC) glgGetProcAddress("glVertexAttribI2uiEXT");
	glVertexAttribI3uiEXT = (PFNGLVERTEXATTRIBI3UIEXTPROC) glgGetProcAddress("glVertexAttribI3uiEXT");
	glVertexAttribI4uiEXT = (PFNGLVERTEXATTRIBI4UIEXTPROC) glgGetProcAddress("glVertexAttribI4uiEXT");
	glVertexAttribI1ivEXT = (PFNGLVERTEXATTRIBI1IVEXTPROC) glgGetProcAddress("glVertexAttribI1ivEXT");
	glVertexAttribI2ivEXT = (PFNGLVERTEXATTRIBI2IVEXTPROC) glgGetProcAddress("glVertexAttribI2ivEXT");
	glVertexAttribI3ivEXT = (PFNGLVERTEXATTRIBI3IVEXTPROC) glgGetProcAddress("glVertexAttribI3ivEXT");
	glVertexAttribI4ivEXT = (PFNGLVERTEXATTRIBI4IVEXTPROC) glgGetProcAddress("glVertexAttribI4ivEXT");
	glVertexAttribI1uivEXT = (PFNGLVERTEXATTRIBI1UIVEXTPROC) glgGetProcAddress("glVertexAttribI1uivEXT");
	glVertexAttribI2uivEXT = (PFNGLVERTEXATTRIBI2UIVEXTPROC) glgGetProcAddress("glVertexAttribI2uivEXT");
	glVertexAttribI3uivEXT = (PFNGLVERTEXATTRIBI3UIVEXTPROC) glgGetProcAddress("glVertexAttribI3uivEXT");
	glVertexAttribI4uivEXT = (PFNGLVERTEXATTRIBI4UIVEXTPROC) glgGetProcAddress("glVertexAttribI4uivEXT");
	glVertexAttribI4bvEXT = (PFNGLVERTEXATTRIBI4BVEXTPROC) glgGetProcAddress("glVertexAttribI4bvEXT");
	glVertexAttribI4svEXT = (PFNGLVERTEXATTRIBI4SVEXTPROC) glgGetProcAddress("glVertexAttribI4svEXT");
	glVertexAttribI4ubvEXT = (PFNGLVERTEXATTRIBI4UBVEXTPROC) glgGetProcAddress("glVertexAttribI4ubvEXT");
	glVertexAttribI4usvEXT = (PFNGLVERTEXATTRIBI4USVEXTPROC) glgGetProcAddress("glVertexAttribI4usvEXT");
	glVertexAttribIPointerEXT = (PFNGLVERTEXATTRIBIPOINTEREXTPROC) glgGetProcAddress("glVertexAttribIPointerEXT");
	glGetVertexAttribIivEXT = (PFNGLGETVERTEXATTRIBIIVEXTPROC) glgGetProcAddress("glGetVertexAttribIivEXT");
	glGetVertexAttribIuivEXT = (PFNGLGETVERTEXATTRIBIUIVEXTPROC) glgGetProcAddress("glGetVertexAttribIuivEXT");

	// GL_EXT_gpu_shader4
	glGetUniformuivEXT = (PFNGLGETUNIFORMUIVEXTPROC) glgGetProcAddress("glGetUniformuivEXT");
	glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC) glgGetProcAddress("glBindFragDataLocationEXT");
	glGetFragDataLocationEXT = (PFNGLGETFRAGDATALOCATIONEXTPROC) glgGetProcAddress("glGetFragDataLocationEXT");
	glUniform1uiEXT = (PFNGLUNIFORM1UIEXTPROC) glgGetProcAddress("glUniform1uiEXT");
	glUniform2uiEXT = (PFNGLUNIFORM2UIEXTPROC) glgGetProcAddress("glUniform2uiEXT");
	glUniform3uiEXT = (PFNGLUNIFORM3UIEXTPROC) glgGetProcAddress("glUniform3uiEXT");
	glUniform4uiEXT = (PFNGLUNIFORM4UIEXTPROC) glgGetProcAddress("glUniform4uiEXT");
	glUniform1uivEXT = (PFNGLUNIFORM1UIVEXTPROC) glgGetProcAddress("glUniform1uivEXT");
	glUniform2uivEXT = (PFNGLUNIFORM2UIVEXTPROC) glgGetProcAddress("glUniform2uivEXT");
	glUniform3uivEXT = (PFNGLUNIFORM3UIVEXTPROC) glgGetProcAddress("glUniform3uivEXT");
	glUniform4uivEXT = (PFNGLUNIFORM4UIVEXTPROC) glgGetProcAddress("glUniform4uivEXT");

	// GL_EXT_draw_instanced
	glDrawArraysInstancedEXT = (PFNGLDRAWARRAYSINSTANCEDEXTPROC) glgGetProcAddress("glDrawArraysInstancedEXT");
	glDrawElementsInstancedEXT = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC) glgGetProcAddress("glDrawElementsInstancedEXT");

	// GL_EXT_texture_buffer_object
	glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC) glgGetProcAddress("glTexBufferEXT");

	// GL_NV_depth_buffer_float
	glDepthRangedNV = (PFNGLDEPTHRANGEDNVPROC) glgGetProcAddress("glDepthRangedNV");
	glClearDepthdNV = (PFNGLCLEARDEPTHDNVPROC) glgGetProcAddress("glClearDepthdNV");
	glDepthBoundsdNV = (PFNGLDEPTHBOUNDSDNVPROC) glgGetProcAddress("glDepthBoundsdNV");

	// GL_NV_framebuffer_multisample_coverage
	glRenderbufferStorageMultisampleCoverageNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) glgGetProcAddress("glRenderbufferStorageMultisampleCoverageNV");

	// GL_NV_parameter_buffer_object
	glProgramBufferParametersfvNV = (PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) glgGetProcAddress("glProgramBufferParametersfvNV");
	glProgramBufferParametersIivNV = (PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) glgGetProcAddress("glProgramBufferParametersIivNV");
	glProgramBufferParametersIuivNV = (PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) glgGetProcAddress("glProgramBufferParametersIuivNV");

	// GL_EXT_draw_buffers2
	glColorMaskIndexedEXT = (PFNGLCOLORMASKINDEXEDEXTPROC) glgGetProcAddress("glColorMaskIndexedEXT");
	glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC) glgGetProcAddress("glGetBooleanIndexedvEXT");
	glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC) glgGetProcAddress("glGetIntegerIndexedvEXT");
	glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC) glgGetProcAddress("glEnableIndexedEXT");
	glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC) glgGetProcAddress("glDisableIndexedEXT");
	glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC) glgGetProcAddress("glIsEnabledIndexedEXT");

	// GL_NV_transform_feedback
	glBeginTransformFeedbackNV = (PFNGLBEGINTRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glBeginTransformFeedbackNV");
	glEndTransformFeedbackNV = (PFNGLENDTRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glEndTransformFeedbackNV");
	glTransformFeedbackAttribsNV = (PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) glgGetProcAddress("glTransformFeedbackAttribsNV");
	glBindBufferRangeNV = (PFNGLBINDBUFFERRANGENVPROC) glgGetProcAddress("glBindBufferRangeNV");
	glBindBufferOffsetNV = (PFNGLBINDBUFFEROFFSETNVPROC) glgGetProcAddress("glBindBufferOffsetNV");
	glBindBufferBaseNV = (PFNGLBINDBUFFERBASENVPROC) glgGetProcAddress("glBindBufferBaseNV");
	glTransformFeedbackVaryingsNV = (PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) glgGetProcAddress("glTransformFeedbackVaryingsNV");
	glActiveVaryingNV = (PFNGLACTIVEVARYINGNVPROC) glgGetProcAddress("glActiveVaryingNV");
	glGetVaryingLocationNV = (PFNGLGETVARYINGLOCATIONNVPROC) glgGetProcAddress("glGetVaryingLocationNV");
	glGetActiveVaryingNV = (PFNGLGETACTIVEVARYINGNVPROC) glgGetProcAddress("glGetActiveVaryingNV");
	glGetTransformFeedbackVaryingNV = (PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) glgGetProcAddress("glGetTransformFeedbackVaryingNV");

	// GL_EXT_bindable_uniform
	glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC) glgGetProcAddress("glUniformBufferEXT");
	glGetUniformBufferSizeEXT = (PFNGLGETUNIFORMBUFFERSIZEEXTPROC) glgGetProcAddress("glGetUniformBufferSizeEXT");
	glGetUniformOffsetEXT = (PFNGLGETUNIFORMOFFSETEXTPROC) glgGetProcAddress("glGetUniformOffsetEXT");

	// GL_EXT_texture_integer
	glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC) glgGetProcAddress("glTexParameterIivEXT");
	glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC) glgGetProcAddress("glTexParameterIuivEXT");
	glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC) glgGetProcAddress("glGetTexParameterIivEXT");
	glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC) glgGetProcAddress("glGetTexParameterIuivEXT");
	glClearColorIiEXT = (PFNGLCLEARCOLORIIEXTPROC) glgGetProcAddress("glClearColorIiEXT");
	glClearColorIuiEXT = (PFNGLCLEARCOLORIUIEXTPROC) glgGetProcAddress("glClearColorIuiEXT");

	// GL_GREMEDY_frame_terminator
	glFrameTerminatorGREMEDY = (PFNGLFRAMETERMINATORGREMEDYPROC) glgGetProcAddress("glFrameTerminatorGREMEDY");

	// GL_NV_conditional_render
	glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC) glgGetProcAddress("glBeginConditionalRenderNV");
	glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC) glgGetProcAddress("glEndConditionalRenderNV");

	// GL_NV_present_video
	glPresentFrameKeyedNV = (PFNGLPRESENTFRAMEKEYEDNVPROC) glgGetProcAddress("glPresentFrameKeyedNV");
	glPresentFrameDualFillNV = (PFNGLPRESENTFRAMEDUALFILLNVPROC) glgGetProcAddress("glPresentFrameDualFillNV");
	glGetVideoivNV = (PFNGLGETVIDEOIVNVPROC) glgGetProcAddress("glGetVideoivNV");
	glGetVideouivNV = (PFNGLGETVIDEOUIVNVPROC) glgGetProcAddress("glGetVideouivNV");
	glGetVideoi64vNV = (PFNGLGETVIDEOI64VNVPROC) glgGetProcAddress("glGetVideoi64vNV");
	glGetVideoui64vNV = (PFNGLGETVIDEOUI64VNVPROC) glgGetProcAddress("glGetVideoui64vNV");

	// GL_EXT_transform_feedback
	glBeginTransformFeedbackEXT = (PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) glgGetProcAddress("glBeginTransformFeedbackEXT");
	glEndTransformFeedbackEXT = (PFNGLENDTRANSFORMFEEDBACKEXTPROC) glgGetProcAddress("glEndTransformFeedbackEXT");
	glBindBufferRangeEXT = (PFNGLBINDBUFFERRANGEEXTPROC) glgGetProcAddress("glBindBufferRangeEXT");
	glBindBufferOffsetEXT = (PFNGLBINDBUFFEROFFSETEXTPROC) glgGetProcAddress("glBindBufferOffsetEXT");
	glBindBufferBaseEXT = (PFNGLBINDBUFFERBASEEXTPROC) glgGetProcAddress("glBindBufferBaseEXT");
	glTransformFeedbackVaryingsEXT = (PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) glgGetProcAddress("glTransformFeedbackVaryingsEXT");
	glGetTransformFeedbackVaryingEXT = (PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) glgGetProcAddress("glGetTransformFeedbackVaryingEXT");

	// GL_EXT_direct_state_access
	glClientAttribDefaultEXT = (PFNGLCLIENTATTRIBDEFAULTEXTPROC) glgGetProcAddress("glClientAttribDefaultEXT");
	glPushClientAttribDefaultEXT = (PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) glgGetProcAddress("glPushClientAttribDefaultEXT");
	glMatrixLoadfEXT = (PFNGLMATRIXLOADFEXTPROC) glgGetProcAddress("glMatrixLoadfEXT");
	glMatrixLoaddEXT = (PFNGLMATRIXLOADDEXTPROC) glgGetProcAddress("glMatrixLoaddEXT");
	glMatrixMultfEXT = (PFNGLMATRIXMULTFEXTPROC) glgGetProcAddress("glMatrixMultfEXT");
	glMatrixMultdEXT = (PFNGLMATRIXMULTDEXTPROC) glgGetProcAddress("glMatrixMultdEXT");
	glMatrixLoadIdentityEXT = (PFNGLMATRIXLOADIDENTITYEXTPROC) glgGetProcAddress("glMatrixLoadIdentityEXT");
	glMatrixRotatefEXT = (PFNGLMATRIXROTATEFEXTPROC) glgGetProcAddress("glMatrixRotatefEXT");
	glMatrixRotatedEXT = (PFNGLMATRIXROTATEDEXTPROC) glgGetProcAddress("glMatrixRotatedEXT");
	glMatrixScalefEXT = (PFNGLMATRIXSCALEFEXTPROC) glgGetProcAddress("glMatrixScalefEXT");
	glMatrixScaledEXT = (PFNGLMATRIXSCALEDEXTPROC) glgGetProcAddress("glMatrixScaledEXT");
	glMatrixTranslatefEXT = (PFNGLMATRIXTRANSLATEFEXTPROC) glgGetProcAddress("glMatrixTranslatefEXT");
	glMatrixTranslatedEXT = (PFNGLMATRIXTRANSLATEDEXTPROC) glgGetProcAddress("glMatrixTranslatedEXT");
	glMatrixFrustumEXT = (PFNGLMATRIXFRUSTUMEXTPROC) glgGetProcAddress("glMatrixFrustumEXT");
	glMatrixOrthoEXT = (PFNGLMATRIXORTHOEXTPROC) glgGetProcAddress("glMatrixOrthoEXT");
	glMatrixPopEXT = (PFNGLMATRIXPOPEXTPROC) glgGetProcAddress("glMatrixPopEXT");
	glMatrixPushEXT = (PFNGLMATRIXPUSHEXTPROC) glgGetProcAddress("glMatrixPushEXT");
	glMatrixLoadTransposefEXT = (PFNGLMATRIXLOADTRANSPOSEFEXTPROC) glgGetProcAddress("glMatrixLoadTransposefEXT");
	glMatrixLoadTransposedEXT = (PFNGLMATRIXLOADTRANSPOSEDEXTPROC) glgGetProcAddress("glMatrixLoadTransposedEXT");
	glMatrixMultTransposefEXT = (PFNGLMATRIXMULTTRANSPOSEFEXTPROC) glgGetProcAddress("glMatrixMultTransposefEXT");
	glMatrixMultTransposedEXT = (PFNGLMATRIXMULTTRANSPOSEDEXTPROC) glgGetProcAddress("glMatrixMultTransposedEXT");
	glTextureParameterfEXT = (PFNGLTEXTUREPARAMETERFEXTPROC) glgGetProcAddress("glTextureParameterfEXT");
	glTextureParameterfvEXT = (PFNGLTEXTUREPARAMETERFVEXTPROC) glgGetProcAddress("glTextureParameterfvEXT");
	glTextureParameteriEXT = (PFNGLTEXTUREPARAMETERIEXTPROC) glgGetProcAddress("glTextureParameteriEXT");
	glTextureParameterivEXT = (PFNGLTEXTUREPARAMETERIVEXTPROC) glgGetProcAddress("glTextureParameterivEXT");
	glTextureImage1DEXT = (PFNGLTEXTUREIMAGE1DEXTPROC) glgGetProcAddress("glTextureImage1DEXT");
	glTextureImage2DEXT = (PFNGLTEXTUREIMAGE2DEXTPROC) glgGetProcAddress("glTextureImage2DEXT");
	glTextureSubImage1DEXT = (PFNGLTEXTURESUBIMAGE1DEXTPROC) glgGetProcAddress("glTextureSubImage1DEXT");
	glTextureSubImage2DEXT = (PFNGLTEXTURESUBIMAGE2DEXTPROC) glgGetProcAddress("glTextureSubImage2DEXT");
	glCopyTextureImage1DEXT = (PFNGLCOPYTEXTUREIMAGE1DEXTPROC) glgGetProcAddress("glCopyTextureImage1DEXT");
	glCopyTextureImage2DEXT = (PFNGLCOPYTEXTUREIMAGE2DEXTPROC) glgGetProcAddress("glCopyTextureImage2DEXT");
	glCopyTextureSubImage1DEXT = (PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) glgGetProcAddress("glCopyTextureSubImage1DEXT");
	glCopyTextureSubImage2DEXT = (PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) glgGetProcAddress("glCopyTextureSubImage2DEXT");
	glGetTextureImageEXT = (PFNGLGETTEXTUREIMAGEEXTPROC) glgGetProcAddress("glGetTextureImageEXT");
	glGetTextureParameterfvEXT = (PFNGLGETTEXTUREPARAMETERFVEXTPROC) glgGetProcAddress("glGetTextureParameterfvEXT");
	glGetTextureParameterivEXT = (PFNGLGETTEXTUREPARAMETERIVEXTPROC) glgGetProcAddress("glGetTextureParameterivEXT");
	glGetTextureLevelParameterfvEXT = (PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) glgGetProcAddress("glGetTextureLevelParameterfvEXT");
	glGetTextureLevelParameterivEXT = (PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) glgGetProcAddress("glGetTextureLevelParameterivEXT");
	glTextureImage3DEXT = (PFNGLTEXTUREIMAGE3DEXTPROC) glgGetProcAddress("glTextureImage3DEXT");
	glTextureSubImage3DEXT = (PFNGLTEXTURESUBIMAGE3DEXTPROC) glgGetProcAddress("glTextureSubImage3DEXT");
	glCopyTextureSubImage3DEXT = (PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) glgGetProcAddress("glCopyTextureSubImage3DEXT");
	glMultiTexParameterfEXT = (PFNGLMULTITEXPARAMETERFEXTPROC) glgGetProcAddress("glMultiTexParameterfEXT");
	glMultiTexParameterfvEXT = (PFNGLMULTITEXPARAMETERFVEXTPROC) glgGetProcAddress("glMultiTexParameterfvEXT");
	glMultiTexParameteriEXT = (PFNGLMULTITEXPARAMETERIEXTPROC) glgGetProcAddress("glMultiTexParameteriEXT");
	glMultiTexParameterivEXT = (PFNGLMULTITEXPARAMETERIVEXTPROC) glgGetProcAddress("glMultiTexParameterivEXT");
	glMultiTexImage1DEXT = (PFNGLMULTITEXIMAGE1DEXTPROC) glgGetProcAddress("glMultiTexImage1DEXT");
	glMultiTexImage2DEXT = (PFNGLMULTITEXIMAGE2DEXTPROC) glgGetProcAddress("glMultiTexImage2DEXT");
	glMultiTexSubImage1DEXT = (PFNGLMULTITEXSUBIMAGE1DEXTPROC) glgGetProcAddress("glMultiTexSubImage1DEXT");
	glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC) glgGetProcAddress("glMultiTexSubImage2DEXT");
	glCopyMultiTexImage1DEXT = (PFNGLCOPYMULTITEXIMAGE1DEXTPROC) glgGetProcAddress("glCopyMultiTexImage1DEXT");
	glCopyMultiTexImage2DEXT = (PFNGLCOPYMULTITEXIMAGE2DEXTPROC) glgGetProcAddress("glCopyMultiTexImage2DEXT");
	glCopyMultiTexSubImage1DEXT = (PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) glgGetProcAddress("glCopyMultiTexSubImage1DEXT");
	glCopyMultiTexSubImage2DEXT = (PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) glgGetProcAddress("glCopyMultiTexSubImage2DEXT");
	glGetMultiTexImageEXT = (PFNGLGETMULTITEXIMAGEEXTPROC) glgGetProcAddress("glGetMultiTexImageEXT");
	glGetMultiTexParameterfvEXT = (PFNGLGETMULTITEXPARAMETERFVEXTPROC) glgGetProcAddress("glGetMultiTexParameterfvEXT");
	glGetMultiTexParameterivEXT = (PFNGLGETMULTITEXPARAMETERIVEXTPROC) glgGetProcAddress("glGetMultiTexParameterivEXT");
	glGetMultiTexLevelParameterfvEXT = (PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) glgGetProcAddress("glGetMultiTexLevelParameterfvEXT");
	glGetMultiTexLevelParameterivEXT = (PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) glgGetProcAddress("glGetMultiTexLevelParameterivEXT");
	glMultiTexImage3DEXT = (PFNGLMULTITEXIMAGE3DEXTPROC) glgGetProcAddress("glMultiTexImage3DEXT");
	glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC) glgGetProcAddress("glMultiTexSubImage3DEXT");
	glCopyMultiTexSubImage3DEXT = (PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) glgGetProcAddress("glCopyMultiTexSubImage3DEXT");
	glBindMultiTextureEXT = (PFNGLBINDMULTITEXTUREEXTPROC) glgGetProcAddress("glBindMultiTextureEXT");
	glEnableClientStateIndexedEXT = (PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) glgGetProcAddress("glEnableClientStateIndexedEXT");
	glDisableClientStateIndexedEXT = (PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) glgGetProcAddress("glDisableClientStateIndexedEXT");
	glMultiTexCoordPointerEXT = (PFNGLMULTITEXCOORDPOINTEREXTPROC) glgGetProcAddress("glMultiTexCoordPointerEXT");
	glMultiTexEnvfEXT = (PFNGLMULTITEXENVFEXTPROC) glgGetProcAddress("glMultiTexEnvfEXT");
	glMultiTexEnvfvEXT = (PFNGLMULTITEXENVFVEXTPROC) glgGetProcAddress("glMultiTexEnvfvEXT");
	glMultiTexEnviEXT = (PFNGLMULTITEXENVIEXTPROC) glgGetProcAddress("glMultiTexEnviEXT");
	glMultiTexEnvivEXT = (PFNGLMULTITEXENVIVEXTPROC) glgGetProcAddress("glMultiTexEnvivEXT");
	glMultiTexGendEXT = (PFNGLMULTITEXGENDEXTPROC) glgGetProcAddress("glMultiTexGendEXT");
	glMultiTexGendvEXT = (PFNGLMULTITEXGENDVEXTPROC) glgGetProcAddress("glMultiTexGendvEXT");
	glMultiTexGenfEXT = (PFNGLMULTITEXGENFEXTPROC) glgGetProcAddress("glMultiTexGenfEXT");
	glMultiTexGenfvEXT = (PFNGLMULTITEXGENFVEXTPROC) glgGetProcAddress("glMultiTexGenfvEXT");
	glMultiTexGeniEXT = (PFNGLMULTITEXGENIEXTPROC) glgGetProcAddress("glMultiTexGeniEXT");
	glMultiTexGenivEXT = (PFNGLMULTITEXGENIVEXTPROC) glgGetProcAddress("glMultiTexGenivEXT");
	glGetMultiTexEnvfvEXT = (PFNGLGETMULTITEXENVFVEXTPROC) glgGetProcAddress("glGetMultiTexEnvfvEXT");
	glGetMultiTexEnvivEXT = (PFNGLGETMULTITEXENVIVEXTPROC) glgGetProcAddress("glGetMultiTexEnvivEXT");
	glGetMultiTexGendvEXT = (PFNGLGETMULTITEXGENDVEXTPROC) glgGetProcAddress("glGetMultiTexGendvEXT");
	glGetMultiTexGenfvEXT = (PFNGLGETMULTITEXGENFVEXTPROC) glgGetProcAddress("glGetMultiTexGenfvEXT");
	glGetMultiTexGenivEXT = (PFNGLGETMULTITEXGENIVEXTPROC) glgGetProcAddress("glGetMultiTexGenivEXT");
	glGetFloatIndexedvEXT = (PFNGLGETFLOATINDEXEDVEXTPROC) glgGetProcAddress("glGetFloatIndexedvEXT");
	glGetDoubleIndexedvEXT = (PFNGLGETDOUBLEINDEXEDVEXTPROC) glgGetProcAddress("glGetDoubleIndexedvEXT");
	glGetPointerIndexedvEXT = (PFNGLGETPOINTERINDEXEDVEXTPROC) glgGetProcAddress("glGetPointerIndexedvEXT");
	glCompressedTextureImage3DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) glgGetProcAddress("glCompressedTextureImage3DEXT");
	glCompressedTextureImage2DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) glgGetProcAddress("glCompressedTextureImage2DEXT");
	glCompressedTextureImage1DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) glgGetProcAddress("glCompressedTextureImage1DEXT");
	glCompressedTextureSubImage3DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) glgGetProcAddress("glCompressedTextureSubImage3DEXT");
	glCompressedTextureSubImage2DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) glgGetProcAddress("glCompressedTextureSubImage2DEXT");
	glCompressedTextureSubImage1DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) glgGetProcAddress("glCompressedTextureSubImage1DEXT");
	glGetCompressedTextureImageEXT = (PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) glgGetProcAddress("glGetCompressedTextureImageEXT");
	glCompressedMultiTexImage3DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) glgGetProcAddress("glCompressedMultiTexImage3DEXT");
	glCompressedMultiTexImage2DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) glgGetProcAddress("glCompressedMultiTexImage2DEXT");
	glCompressedMultiTexImage1DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) glgGetProcAddress("glCompressedMultiTexImage1DEXT");
	glCompressedMultiTexSubImage3DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) glgGetProcAddress("glCompressedMultiTexSubImage3DEXT");
	glCompressedMultiTexSubImage2DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) glgGetProcAddress("glCompressedMultiTexSubImage2DEXT");
	glCompressedMultiTexSubImage1DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) glgGetProcAddress("glCompressedMultiTexSubImage1DEXT");
	glGetCompressedMultiTexImageEXT = (PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) glgGetProcAddress("glGetCompressedMultiTexImageEXT");
	glNamedProgramStringEXT = (PFNGLNAMEDPROGRAMSTRINGEXTPROC) glgGetProcAddress("glNamedProgramStringEXT");
	glNamedProgramLocalParameter4dEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) glgGetProcAddress("glNamedProgramLocalParameter4dEXT");
	glNamedProgramLocalParameter4dvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) glgGetProcAddress("glNamedProgramLocalParameter4dvEXT");
	glNamedProgramLocalParameter4fEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) glgGetProcAddress("glNamedProgramLocalParameter4fEXT");
	glNamedProgramLocalParameter4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) glgGetProcAddress("glNamedProgramLocalParameter4fvEXT");
	glGetNamedProgramLocalParameterdvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) glgGetProcAddress("glGetNamedProgramLocalParameterdvEXT");
	glGetNamedProgramLocalParameterfvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) glgGetProcAddress("glGetNamedProgramLocalParameterfvEXT");
	glGetNamedProgramivEXT = (PFNGLGETNAMEDPROGRAMIVEXTPROC) glgGetProcAddress("glGetNamedProgramivEXT");
	glGetNamedProgramStringEXT = (PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) glgGetProcAddress("glGetNamedProgramStringEXT");
	glNamedProgramLocalParameters4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) glgGetProcAddress("glNamedProgramLocalParameters4fvEXT");
	glNamedProgramLocalParameterI4iEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) glgGetProcAddress("glNamedProgramLocalParameterI4iEXT");
	glNamedProgramLocalParameterI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) glgGetProcAddress("glNamedProgramLocalParameterI4ivEXT");
	glNamedProgramLocalParametersI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) glgGetProcAddress("glNamedProgramLocalParametersI4ivEXT");
	glNamedProgramLocalParameterI4uiEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) glgGetProcAddress("glNamedProgramLocalParameterI4uiEXT");
	glNamedProgramLocalParameterI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) glgGetProcAddress("glNamedProgramLocalParameterI4uivEXT");
	glNamedProgramLocalParametersI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) glgGetProcAddress("glNamedProgramLocalParametersI4uivEXT");
	glGetNamedProgramLocalParameterIivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) glgGetProcAddress("glGetNamedProgramLocalParameterIivEXT");
	glGetNamedProgramLocalParameterIuivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) glgGetProcAddress("glGetNamedProgramLocalParameterIuivEXT");
	glTextureParameterIivEXT = (PFNGLTEXTUREPARAMETERIIVEXTPROC) glgGetProcAddress("glTextureParameterIivEXT");
	glTextureParameterIuivEXT = (PFNGLTEXTUREPARAMETERIUIVEXTPROC) glgGetProcAddress("glTextureParameterIuivEXT");
	glGetTextureParameterIivEXT = (PFNGLGETTEXTUREPARAMETERIIVEXTPROC) glgGetProcAddress("glGetTextureParameterIivEXT");
	glGetTextureParameterIuivEXT = (PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) glgGetProcAddress("glGetTextureParameterIuivEXT");
	glMultiTexParameterIivEXT = (PFNGLMULTITEXPARAMETERIIVEXTPROC) glgGetProcAddress("glMultiTexParameterIivEXT");
	glMultiTexParameterIuivEXT = (PFNGLMULTITEXPARAMETERIUIVEXTPROC) glgGetProcAddress("glMultiTexParameterIuivEXT");
	glGetMultiTexParameterIivEXT = (PFNGLGETMULTITEXPARAMETERIIVEXTPROC) glgGetProcAddress("glGetMultiTexParameterIivEXT");
	glGetMultiTexParameterIuivEXT = (PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) glgGetProcAddress("glGetMultiTexParameterIuivEXT");
	glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC) glgGetProcAddress("glProgramUniform1fEXT");
	glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC) glgGetProcAddress("glProgramUniform2fEXT");
	glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC) glgGetProcAddress("glProgramUniform3fEXT");
	glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC) glgGetProcAddress("glProgramUniform4fEXT");
	glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC) glgGetProcAddress("glProgramUniform1iEXT");
	glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC) glgGetProcAddress("glProgramUniform2iEXT");
	glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC) glgGetProcAddress("glProgramUniform3iEXT");
	glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC) glgGetProcAddress("glProgramUniform4iEXT");
	glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC) glgGetProcAddress("glProgramUniform1fvEXT");
	glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC) glgGetProcAddress("glProgramUniform2fvEXT");
	glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC) glgGetProcAddress("glProgramUniform3fvEXT");
	glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC) glgGetProcAddress("glProgramUniform4fvEXT");
	glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC) glgGetProcAddress("glProgramUniform1ivEXT");
	glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC) glgGetProcAddress("glProgramUniform2ivEXT");
	glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC) glgGetProcAddress("glProgramUniform3ivEXT");
	glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC) glgGetProcAddress("glProgramUniform4ivEXT");
	glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix2fvEXT");
	glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix3fvEXT");
	glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix4fvEXT");
	glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix2x3fvEXT");
	glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix3x2fvEXT");
	glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix2x4fvEXT");
	glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix4x2fvEXT");
	glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix3x4fvEXT");
	glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) glgGetProcAddress("glProgramUniformMatrix4x3fvEXT");
	glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC) glgGetProcAddress("glProgramUniform1uiEXT");
	glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC) glgGetProcAddress("glProgramUniform2uiEXT");
	glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC) glgGetProcAddress("glProgramUniform3uiEXT");
	glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC) glgGetProcAddress("glProgramUniform4uiEXT");
	glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC) glgGetProcAddress("glProgramUniform1uivEXT");
	glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC) glgGetProcAddress("glProgramUniform2uivEXT");
	glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC) glgGetProcAddress("glProgramUniform3uivEXT");
	glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC) glgGetProcAddress("glProgramUniform4uivEXT");
	glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC) glgGetProcAddress("glNamedBufferDataEXT");
	glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC) glgGetProcAddress("glNamedBufferSubDataEXT");
	glMapNamedBufferEXT = (PFNGLMAPNAMEDBUFFEREXTPROC) glgGetProcAddress("glMapNamedBufferEXT");
	glUnmapNamedBufferEXT = (PFNGLUNMAPNAMEDBUFFEREXTPROC) glgGetProcAddress("glUnmapNamedBufferEXT");
	glGetNamedBufferParameterivEXT = (PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) glgGetProcAddress("glGetNamedBufferParameterivEXT");
	glGetNamedBufferPointervEXT = (PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) glgGetProcAddress("glGetNamedBufferPointervEXT");
	glGetNamedBufferSubDataEXT = (PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) glgGetProcAddress("glGetNamedBufferSubDataEXT");
	glTextureBufferEXT = (PFNGLTEXTUREBUFFEREXTPROC) glgGetProcAddress("glTextureBufferEXT");
	glMultiTexBufferEXT = (PFNGLMULTITEXBUFFEREXTPROC) glgGetProcAddress("glMultiTexBufferEXT");
	glNamedRenderbufferStorageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) glgGetProcAddress("glNamedRenderbufferStorageEXT");
	glGetNamedRenderbufferParameterivEXT = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) glgGetProcAddress("glGetNamedRenderbufferParameterivEXT");
	glCheckNamedFramebufferStatusEXT = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) glgGetProcAddress("glCheckNamedFramebufferStatusEXT");
	glNamedFramebufferTexture1DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) glgGetProcAddress("glNamedFramebufferTexture1DEXT");
	glNamedFramebufferTexture2DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) glgGetProcAddress("glNamedFramebufferTexture2DEXT");
	glNamedFramebufferTexture3DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) glgGetProcAddress("glNamedFramebufferTexture3DEXT");
	glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) glgGetProcAddress("glNamedFramebufferRenderbufferEXT");
	glGetNamedFramebufferAttachmentParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) glgGetProcAddress("glGetNamedFramebufferAttachmentParameterivEXT");
	glGenerateTextureMipmapEXT = (PFNGLGENERATETEXTUREMIPMAPEXTPROC) glgGetProcAddress("glGenerateTextureMipmapEXT");
	glGenerateMultiTexMipmapEXT = (PFNGLGENERATEMULTITEXMIPMAPEXTPROC) glgGetProcAddress("glGenerateMultiTexMipmapEXT");
	glFramebufferDrawBufferEXT = (PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) glgGetProcAddress("glFramebufferDrawBufferEXT");
	glFramebufferDrawBuffersEXT = (PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) glgGetProcAddress("glFramebufferDrawBuffersEXT");
	glFramebufferReadBufferEXT = (PFNGLFRAMEBUFFERREADBUFFEREXTPROC) glgGetProcAddress("glFramebufferReadBufferEXT");
	glGetFramebufferParameterivEXT = (PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) glgGetProcAddress("glGetFramebufferParameterivEXT");
	glNamedRenderbufferStorageMultisampleEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) glgGetProcAddress("glNamedRenderbufferStorageMultisampleEXT");
	glNamedRenderbufferStorageMultisampleCoverageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) glgGetProcAddress("glNamedRenderbufferStorageMultisampleCoverageEXT");
	glNamedFramebufferTextureEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) glgGetProcAddress("glNamedFramebufferTextureEXT");
	glNamedFramebufferTextureLayerEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) glgGetProcAddress("glNamedFramebufferTextureLayerEXT");
	glNamedFramebufferTextureFaceEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) glgGetProcAddress("glNamedFramebufferTextureFaceEXT");
	glTextureRenderbufferEXT = (PFNGLTEXTURERENDERBUFFEREXTPROC) glgGetProcAddress("glTextureRenderbufferEXT");
	glMultiTexRenderbufferEXT = (PFNGLMULTITEXRENDERBUFFEREXTPROC) glgGetProcAddress("glMultiTexRenderbufferEXT");

	// GL_NV_explicit_multisample
	glGetMultisamplefvNV = (PFNGLGETMULTISAMPLEFVNVPROC) glgGetProcAddress("glGetMultisamplefvNV");
	glSampleMaskIndexedNV = (PFNGLSAMPLEMASKINDEXEDNVPROC) glgGetProcAddress("glSampleMaskIndexedNV");
	glTexRenderbufferNV = (PFNGLTEXRENDERBUFFERNVPROC) glgGetProcAddress("glTexRenderbufferNV");

	// GL_NV_transform_feedback2
	glBindTransformFeedbackNV = (PFNGLBINDTRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glBindTransformFeedbackNV");
	glDeleteTransformFeedbacksNV = (PFNGLDELETETRANSFORMFEEDBACKSNVPROC) glgGetProcAddress("glDeleteTransformFeedbacksNV");
	glGenTransformFeedbacksNV = (PFNGLGENTRANSFORMFEEDBACKSNVPROC) glgGetProcAddress("glGenTransformFeedbacksNV");
	glIsTransformFeedbackNV = (PFNGLISTRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glIsTransformFeedbackNV");
	glPauseTransformFeedbackNV = (PFNGLPAUSETRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glPauseTransformFeedbackNV");
	glResumeTransformFeedbackNV = (PFNGLRESUMETRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glResumeTransformFeedbackNV");
	glDrawTransformFeedbackNV = (PFNGLDRAWTRANSFORMFEEDBACKNVPROC) glgGetProcAddress("glDrawTransformFeedbackNV");

	// GL_AMD_performance_monitor
	glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC) glgGetProcAddress("glGetPerfMonitorGroupsAMD");
	glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC) glgGetProcAddress("glGetPerfMonitorCountersAMD");
	glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) glgGetProcAddress("glGetPerfMonitorGroupStringAMD");
	glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) glgGetProcAddress("glGetPerfMonitorCounterStringAMD");
	glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) glgGetProcAddress("glGetPerfMonitorCounterInfoAMD");
	glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC) glgGetProcAddress("glGenPerfMonitorsAMD");
	glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC) glgGetProcAddress("glDeletePerfMonitorsAMD");
	glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) glgGetProcAddress("glSelectPerfMonitorCountersAMD");
	glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC) glgGetProcAddress("glBeginPerfMonitorAMD");
	glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC) glgGetProcAddress("glEndPerfMonitorAMD");
	glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) glgGetProcAddress("glGetPerfMonitorCounterDataAMD");

	// GL_AMD_vertex_shader_tesselator
	glTessellationFactorAMD = (PFNGLTESSELLATIONFACTORAMDPROC) glgGetProcAddress("glTessellationFactorAMD");
	glTessellationModeAMD = (PFNGLTESSELLATIONMODEAMDPROC) glgGetProcAddress("glTessellationModeAMD");

	// GL_EXT_provoking_vertex
	glProvokingVertexEXT = (PFNGLPROVOKINGVERTEXEXTPROC) glgGetProcAddress("glProvokingVertexEXT");

	// GL_AMD_draw_buffers_blend
	glBlendFuncIndexedAMD = (PFNGLBLENDFUNCINDEXEDAMDPROC) glgGetProcAddress("glBlendFuncIndexedAMD");
	glBlendFuncSeparateIndexedAMD = (PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) glgGetProcAddress("glBlendFuncSeparateIndexedAMD");
	glBlendEquationIndexedAMD = (PFNGLBLENDEQUATIONINDEXEDAMDPROC) glgGetProcAddress("glBlendEquationIndexedAMD");
	glBlendEquationSeparateIndexedAMD = (PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) glgGetProcAddress("glBlendEquationSeparateIndexedAMD");

	// GL_APPLE_texture_range
	glTextureRangeAPPLE = (PFNGLTEXTURERANGEAPPLEPROC) glgGetProcAddress("glTextureRangeAPPLE");
	glGetTexParameterPointervAPPLE = (PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) glgGetProcAddress("glGetTexParameterPointervAPPLE");

	// GL_APPLE_vertex_program_evaluators
	glEnableVertexAttribAPPLE = (PFNGLENABLEVERTEXATTRIBAPPLEPROC) glgGetProcAddress("glEnableVertexAttribAPPLE");
	glDisableVertexAttribAPPLE = (PFNGLDISABLEVERTEXATTRIBAPPLEPROC) glgGetProcAddress("glDisableVertexAttribAPPLE");
	glIsVertexAttribEnabledAPPLE = (PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) glgGetProcAddress("glIsVertexAttribEnabledAPPLE");
	glMapVertexAttrib1dAPPLE = (PFNGLMAPVERTEXATTRIB1DAPPLEPROC) glgGetProcAddress("glMapVertexAttrib1dAPPLE");
	glMapVertexAttrib1fAPPLE = (PFNGLMAPVERTEXATTRIB1FAPPLEPROC) glgGetProcAddress("glMapVertexAttrib1fAPPLE");
	glMapVertexAttrib2dAPPLE = (PFNGLMAPVERTEXATTRIB2DAPPLEPROC) glgGetProcAddress("glMapVertexAttrib2dAPPLE");
	glMapVertexAttrib2fAPPLE = (PFNGLMAPVERTEXATTRIB2FAPPLEPROC) glgGetProcAddress("glMapVertexAttrib2fAPPLE");

	// GL_APPLE_object_purgeable
	glObjectPurgeableAPPLE = (PFNGLOBJECTPURGEABLEAPPLEPROC) glgGetProcAddress("glObjectPurgeableAPPLE");
	glObjectUnpurgeableAPPLE = (PFNGLOBJECTUNPURGEABLEAPPLEPROC) glgGetProcAddress("glObjectUnpurgeableAPPLE");
	glGetObjectParameterivAPPLE = (PFNGLGETOBJECTPARAMETERIVAPPLEPROC) glgGetProcAddress("glGetObjectParameterivAPPLE");

	// GL_NV_video_capture
	glBeginVideoCaptureNV = (PFNGLBEGINVIDEOCAPTURENVPROC) glgGetProcAddress("glBeginVideoCaptureNV");
	glBindVideoCaptureStreamBufferNV = (PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) glgGetProcAddress("glBindVideoCaptureStreamBufferNV");
	glBindVideoCaptureStreamTextureNV = (PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) glgGetProcAddress("glBindVideoCaptureStreamTextureNV");
	glEndVideoCaptureNV = (PFNGLENDVIDEOCAPTURENVPROC) glgGetProcAddress("glEndVideoCaptureNV");
	glGetVideoCaptureivNV = (PFNGLGETVIDEOCAPTUREIVNVPROC) glgGetProcAddress("glGetVideoCaptureivNV");
	glGetVideoCaptureStreamivNV = (PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) glgGetProcAddress("glGetVideoCaptureStreamivNV");
	glGetVideoCaptureStreamfvNV = (PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) glgGetProcAddress("glGetVideoCaptureStreamfvNV");
	glGetVideoCaptureStreamdvNV = (PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) glgGetProcAddress("glGetVideoCaptureStreamdvNV");
	glVideoCaptureNV = (PFNGLVIDEOCAPTURENVPROC) glgGetProcAddress("glVideoCaptureNV");
	glVideoCaptureStreamParameterivNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) glgGetProcAddress("glVideoCaptureStreamParameterivNV");
	glVideoCaptureStreamParameterfvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) glgGetProcAddress("glVideoCaptureStreamParameterfvNV");
	glVideoCaptureStreamParameterdvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) glgGetProcAddress("glVideoCaptureStreamParameterdvNV");

	// GL_NV_copy_image
	glCopyImageSubDataNV = (PFNGLCOPYIMAGESUBDATANVPROC) glgGetProcAddress("glCopyImageSubDataNV");

	// GL_EXT_separate_shader_objects
	glUseShaderProgramEXT = (PFNGLUSESHADERPROGRAMEXTPROC) glgGetProcAddress("glUseShaderProgramEXT");
	glActiveProgramEXT = (PFNGLACTIVEPROGRAMEXTPROC) glgGetProcAddress("glActiveProgramEXT");
	glCreateShaderProgramEXT = (PFNGLCREATESHADERPROGRAMEXTPROC) glgGetProcAddress("glCreateShaderProgramEXT");

	// GL_NV_shader_buffer_load
	glMakeBufferResidentNV = (PFNGLMAKEBUFFERRESIDENTNVPROC) glgGetProcAddress("glMakeBufferResidentNV");
	glMakeBufferNonResidentNV = (PFNGLMAKEBUFFERNONRESIDENTNVPROC) glgGetProcAddress("glMakeBufferNonResidentNV");
	glIsBufferResidentNV = (PFNGLISBUFFERRESIDENTNVPROC) glgGetProcAddress("glIsBufferResidentNV");
	glNamedMakeBufferResidentNV = (PFNGLNAMEDMAKEBUFFERRESIDENTNVPROC) glgGetProcAddress("glNamedMakeBufferResidentNV");
	glNamedMakeBufferNonResidentNV = (PFNGLNAMEDMAKEBUFFERNONRESIDENTNVPROC) glgGetProcAddress("glNamedMakeBufferNonResidentNV");
	glIsNamedBufferResidentNV = (PFNGLISNAMEDBUFFERRESIDENTNVPROC) glgGetProcAddress("glIsNamedBufferResidentNV");
	glGetBufferParameterui64vNV = (PFNGLGETBUFFERPARAMETERUI64VNVPROC) glgGetProcAddress("glGetBufferParameterui64vNV");
	glGetNamedBufferParameterui64vNV = (PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) glgGetProcAddress("glGetNamedBufferParameterui64vNV");
	glGetIntegerui64vNV = (PFNGLGETINTEGERUI64VNVPROC) glgGetProcAddress("glGetIntegerui64vNV");
	glUniformui64NV = (PFNGLUNIFORMUI64NVPROC) glgGetProcAddress("glUniformui64NV");
	glUniformui64vNV = (PFNGLUNIFORMUI64VNVPROC) glgGetProcAddress("glUniformui64vNV");
	glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC) glgGetProcAddress("glGetUniformui64vNV");
	glProgramUniformui64NV = (PFNGLPROGRAMUNIFORMUI64NVPROC) glgGetProcAddress("glProgramUniformui64NV");
	glProgramUniformui64vNV = (PFNGLPROGRAMUNIFORMUI64VNVPROC) glgGetProcAddress("glProgramUniformui64vNV");

	// GL_NV_vertex_buffer_unified_memory
	glBufferAddressRangeNV = (PFNGLBUFFERADDRESSRANGENVPROC) glgGetProcAddress("glBufferAddressRangeNV");
	glVertexFormatNV = (PFNGLVERTEXFORMATNVPROC) glgGetProcAddress("glVertexFormatNV");
	glNormalFormatNV = (PFNGLNORMALFORMATNVPROC) glgGetProcAddress("glNormalFormatNV");
	glColorFormatNV = (PFNGLCOLORFORMATNVPROC) glgGetProcAddress("glColorFormatNV");
	glIndexFormatNV = (PFNGLINDEXFORMATNVPROC) glgGetProcAddress("glIndexFormatNV");
	glTexCoordFormatNV = (PFNGLTEXCOORDFORMATNVPROC) glgGetProcAddress("glTexCoordFormatNV");
	glEdgeFlagFormatNV = (PFNGLEDGEFLAGFORMATNVPROC) glgGetProcAddress("glEdgeFlagFormatNV");
	glSecondaryColorFormatNV = (PFNGLSECONDARYCOLORFORMATNVPROC) glgGetProcAddress("glSecondaryColorFormatNV");
	glFogCoordFormatNV = (PFNGLFOGCOORDFORMATNVPROC) glgGetProcAddress("glFogCoordFormatNV");
	glVertexAttribFormatNV = (PFNGLVERTEXATTRIBFORMATNVPROC) glgGetProcAddress("glVertexAttribFormatNV");
	glVertexAttribIFormatNV = (PFNGLVERTEXATTRIBIFORMATNVPROC) glgGetProcAddress("glVertexAttribIFormatNV");
	glGetIntegerui64i_vNV = (PFNGLGETINTEGERUI64I_VNVPROC) glgGetProcAddress("glGetIntegerui64i_vNV");

	// GL_NV_texture_barrier
	glTextureBarrierNV = (PFNGLTEXTUREBARRIERNVPROC) glgGetProcAddress("glTextureBarrierNV");

	// WGL_ARB_buffer_region
	wglCreateBufferRegionARB = (PFNWGLCREATEBUFFERREGIONARBPROC) glgGetProcAddress("wglCreateBufferRegionARB");
	wglDeleteBufferRegionARB = (PFNWGLDELETEBUFFERREGIONARBPROC) glgGetProcAddress("wglDeleteBufferRegionARB");
	wglSaveBufferRegionARB = (PFNWGLSAVEBUFFERREGIONARBPROC) glgGetProcAddress("wglSaveBufferRegionARB");
	wglRestoreBufferRegionARB = (PFNWGLRESTOREBUFFERREGIONARBPROC) glgGetProcAddress("wglRestoreBufferRegionARB");

	// WGL_ARB_extensions_string
	wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) glgGetProcAddress("wglGetExtensionsStringARB");

	// WGL_ARB_pixel_format
	wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC) glgGetProcAddress("wglGetPixelFormatAttribivARB");
	wglGetPixelFormatAttribfvARB = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC) glgGetProcAddress("wglGetPixelFormatAttribfvARB");
	wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC) glgGetProcAddress("wglChoosePixelFormatARB");

	// WGL_ARB_make_current_read
	wglMakeContextCurrentARB = (PFNWGLMAKECONTEXTCURRENTARBPROC) glgGetProcAddress("wglMakeContextCurrentARB");
	wglGetCurrentReadDCARB = (PFNWGLGETCURRENTREADDCARBPROC) glgGetProcAddress("wglGetCurrentReadDCARB");

	// WGL_ARB_pbuffer
	wglCreatePbufferARB = (PFNWGLCREATEPBUFFERARBPROC) glgGetProcAddress("wglCreatePbufferARB");
	wglGetPbufferDCARB = (PFNWGLGETPBUFFERDCARBPROC) glgGetProcAddress("wglGetPbufferDCARB");
	wglReleasePbufferDCARB = (PFNWGLRELEASEPBUFFERDCARBPROC) glgGetProcAddress("wglReleasePbufferDCARB");
	wglDestroyPbufferARB = (PFNWGLDESTROYPBUFFERARBPROC) glgGetProcAddress("wglDestroyPbufferARB");
	wglQueryPbufferARB = (PFNWGLQUERYPBUFFERARBPROC) glgGetProcAddress("wglQueryPbufferARB");

	// WGL_ARB_render_texture
	wglBindTexImageARB = (PFNWGLBINDTEXIMAGEARBPROC) glgGetProcAddress("wglBindTexImageARB");
	wglReleaseTexImageARB = (PFNWGLRELEASETEXIMAGEARBPROC) glgGetProcAddress("wglReleaseTexImageARB");
	wglSetPbufferAttribARB = (PFNWGLSETPBUFFERATTRIBARBPROC) glgGetProcAddress("wglSetPbufferAttribARB");

	// WGL_ARB_create_context
	wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC) glgGetProcAddress("wglCreateContextAttribsARB");

	// WGL_EXT_display_color_table
	wglCreateDisplayColorTableEXT = (PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) glgGetProcAddress("wglCreateDisplayColorTableEXT");
	wglLoadDisplayColorTableEXT = (PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) glgGetProcAddress("wglLoadDisplayColorTableEXT");
	wglBindDisplayColorTableEXT = (PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) glgGetProcAddress("wglBindDisplayColorTableEXT");
	wglDestroyDisplayColorTableEXT = (PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) glgGetProcAddress("wglDestroyDisplayColorTableEXT");

	// WGL_EXT_extensions_string
	wglGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC) glgGetProcAddress("wglGetExtensionsStringEXT");

	// WGL_EXT_make_current_read
	wglMakeContextCurrentEXT = (PFNWGLMAKECONTEXTCURRENTEXTPROC) glgGetProcAddress("wglMakeContextCurrentEXT");
	wglGetCurrentReadDCEXT = (PFNWGLGETCURRENTREADDCEXTPROC) glgGetProcAddress("wglGetCurrentReadDCEXT");

	// WGL_EXT_pbuffer
	wglCreatePbufferEXT = (PFNWGLCREATEPBUFFEREXTPROC) glgGetProcAddress("wglCreatePbufferEXT");
	wglGetPbufferDCEXT = (PFNWGLGETPBUFFERDCEXTPROC) glgGetProcAddress("wglGetPbufferDCEXT");
	wglReleasePbufferDCEXT = (PFNWGLRELEASEPBUFFERDCEXTPROC) glgGetProcAddress("wglReleasePbufferDCEXT");
	wglDestroyPbufferEXT = (PFNWGLDESTROYPBUFFEREXTPROC) glgGetProcAddress("wglDestroyPbufferEXT");
	wglQueryPbufferEXT = (PFNWGLQUERYPBUFFEREXTPROC) glgGetProcAddress("wglQueryPbufferEXT");

	// WGL_EXT_pixel_format
	wglGetPixelFormatAttribivEXT = (PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) glgGetProcAddress("wglGetPixelFormatAttribivEXT");
	wglGetPixelFormatAttribfvEXT = (PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) glgGetProcAddress("wglGetPixelFormatAttribfvEXT");
	wglChoosePixelFormatEXT = (PFNWGLCHOOSEPIXELFORMATEXTPROC) glgGetProcAddress("wglChoosePixelFormatEXT");

	// WGL_EXT_swap_control
	wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) glgGetProcAddress("wglSwapIntervalEXT");
	wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC) glgGetProcAddress("wglGetSwapIntervalEXT");

	// WGL_NV_vertex_array_range
	wglAllocateMemoryNV = (PFNWGLALLOCATEMEMORYNVPROC) glgGetProcAddress("wglAllocateMemoryNV");
	wglFreeMemoryNV = (PFNWGLFREEMEMORYNVPROC) glgGetProcAddress("wglFreeMemoryNV");

	// WGL_OML_sync_control
	wglGetSyncValuesOML = (PFNWGLGETSYNCVALUESOMLPROC) glgGetProcAddress("wglGetSyncValuesOML");
	wglGetMscRateOML = (PFNWGLGETMSCRATEOMLPROC) glgGetProcAddress("wglGetMscRateOML");
	wglSwapBuffersMscOML = (PFNWGLSWAPBUFFERSMSCOMLPROC) glgGetProcAddress("wglSwapBuffersMscOML");
	wglSwapLayerBuffersMscOML = (PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) glgGetProcAddress("wglSwapLayerBuffersMscOML");
	wglWaitForMscOML = (PFNWGLWAITFORMSCOMLPROC) glgGetProcAddress("wglWaitForMscOML");
	wglWaitForSbcOML = (PFNWGLWAITFORSBCOMLPROC) glgGetProcAddress("wglWaitForSbcOML");

	// WGL_I3D_digital_video_control
	wglGetDigitalVideoParametersI3D = (PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) glgGetProcAddress("wglGetDigitalVideoParametersI3D");
	wglSetDigitalVideoParametersI3D = (PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) glgGetProcAddress("wglSetDigitalVideoParametersI3D");

	// WGL_I3D_gamma
	wglGetGammaTableParametersI3D = (PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) glgGetProcAddress("wglGetGammaTableParametersI3D");
	wglSetGammaTableParametersI3D = (PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) glgGetProcAddress("wglSetGammaTableParametersI3D");
	wglGetGammaTableI3D = (PFNWGLGETGAMMATABLEI3DPROC) glgGetProcAddress("wglGetGammaTableI3D");
	wglSetGammaTableI3D = (PFNWGLSETGAMMATABLEI3DPROC) glgGetProcAddress("wglSetGammaTableI3D");

	// WGL_I3D_genlock
	wglEnableGenlockI3D = (PFNWGLENABLEGENLOCKI3DPROC) glgGetProcAddress("wglEnableGenlockI3D");
	wglDisableGenlockI3D = (PFNWGLDISABLEGENLOCKI3DPROC) glgGetProcAddress("wglDisableGenlockI3D");
	wglIsEnabledGenlockI3D = (PFNWGLISENABLEDGENLOCKI3DPROC) glgGetProcAddress("wglIsEnabledGenlockI3D");
	wglGenlockSourceI3D = (PFNWGLGENLOCKSOURCEI3DPROC) glgGetProcAddress("wglGenlockSourceI3D");
	wglGetGenlockSourceI3D = (PFNWGLGETGENLOCKSOURCEI3DPROC) glgGetProcAddress("wglGetGenlockSourceI3D");
	wglGenlockSourceEdgeI3D = (PFNWGLGENLOCKSOURCEEDGEI3DPROC) glgGetProcAddress("wglGenlockSourceEdgeI3D");
	wglGetGenlockSourceEdgeI3D = (PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) glgGetProcAddress("wglGetGenlockSourceEdgeI3D");
	wglGenlockSampleRateI3D = (PFNWGLGENLOCKSAMPLERATEI3DPROC) glgGetProcAddress("wglGenlockSampleRateI3D");
	wglGetGenlockSampleRateI3D = (PFNWGLGETGENLOCKSAMPLERATEI3DPROC) glgGetProcAddress("wglGetGenlockSampleRateI3D");
	wglGenlockSourceDelayI3D = (PFNWGLGENLOCKSOURCEDELAYI3DPROC) glgGetProcAddress("wglGenlockSourceDelayI3D");
	wglGetGenlockSourceDelayI3D = (PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) glgGetProcAddress("wglGetGenlockSourceDelayI3D");
	wglQueryGenlockMaxSourceDelayI3D = (PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) glgGetProcAddress("wglQueryGenlockMaxSourceDelayI3D");

	// WGL_I3D_image_buffer
	wglCreateImageBufferI3D = (PFNWGLCREATEIMAGEBUFFERI3DPROC) glgGetProcAddress("wglCreateImageBufferI3D");
	wglDestroyImageBufferI3D = (PFNWGLDESTROYIMAGEBUFFERI3DPROC) glgGetProcAddress("wglDestroyImageBufferI3D");
	wglAssociateImageBufferEventsI3D = (PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) glgGetProcAddress("wglAssociateImageBufferEventsI3D");
	wglReleaseImageBufferEventsI3D = (PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) glgGetProcAddress("wglReleaseImageBufferEventsI3D");

	// WGL_I3D_swap_frame_lock
	wglEnableFrameLockI3D = (PFNWGLENABLEFRAMELOCKI3DPROC) glgGetProcAddress("wglEnableFrameLockI3D");
	wglDisableFrameLockI3D = (PFNWGLDISABLEFRAMELOCKI3DPROC) glgGetProcAddress("wglDisableFrameLockI3D");
	wglIsEnabledFrameLockI3D = (PFNWGLISENABLEDFRAMELOCKI3DPROC) glgGetProcAddress("wglIsEnabledFrameLockI3D");
	wglQueryFrameLockMasterI3D = (PFNWGLQUERYFRAMELOCKMASTERI3DPROC) glgGetProcAddress("wglQueryFrameLockMasterI3D");

	// WGL_I3D_swap_frame_usage
	wglGetFrameUsageI3D = (PFNWGLGETFRAMEUSAGEI3DPROC) glgGetProcAddress("wglGetFrameUsageI3D");
	wglBeginFrameTrackingI3D = (PFNWGLBEGINFRAMETRACKINGI3DPROC) glgGetProcAddress("wglBeginFrameTrackingI3D");
	wglEndFrameTrackingI3D = (PFNWGLENDFRAMETRACKINGI3DPROC) glgGetProcAddress("wglEndFrameTrackingI3D");
	wglQueryFrameTrackingI3D = (PFNWGLQUERYFRAMETRACKINGI3DPROC) glgGetProcAddress("wglQueryFrameTrackingI3D");

	// WGL_3DL_stereo_control
	wglSetStereoEmitterState3DL = (PFNWGLSETSTEREOEMITTERSTATE3DLPROC) glgGetProcAddress("wglSetStereoEmitterState3DL");

	// WGL_NV_present_video
	wglEnumerateVideoDevicesNV = (PFNWGLENUMERATEVIDEODEVICESNVPROC) glgGetProcAddress("wglEnumerateVideoDevicesNV");
	wglBindVideoDeviceNV = (PFNWGLBINDVIDEODEVICENVPROC) glgGetProcAddress("wglBindVideoDeviceNV");
	wglQueryCurrentContextNV = (PFNWGLQUERYCURRENTCONTEXTNVPROC) glgGetProcAddress("wglQueryCurrentContextNV");

	// WGL_NV_video_output
	wglGetVideoDeviceNV = (PFNWGLGETVIDEODEVICENVPROC) glgGetProcAddress("wglGetVideoDeviceNV");
	wglReleaseVideoDeviceNV = (PFNWGLRELEASEVIDEODEVICENVPROC) glgGetProcAddress("wglReleaseVideoDeviceNV");
	wglBindVideoImageNV = (PFNWGLBINDVIDEOIMAGENVPROC) glgGetProcAddress("wglBindVideoImageNV");
	wglReleaseVideoImageNV = (PFNWGLRELEASEVIDEOIMAGENVPROC) glgGetProcAddress("wglReleaseVideoImageNV");
	wglSendPbufferToVideoNV = (PFNWGLSENDPBUFFERTOVIDEONVPROC) glgGetProcAddress("wglSendPbufferToVideoNV");
	wglGetVideoInfoNV = (PFNWGLGETVIDEOINFONVPROC) glgGetProcAddress("wglGetVideoInfoNV");

	// WGL_NV_swap_group
	wglJoinSwapGroupNV = (PFNWGLJOINSWAPGROUPNVPROC) glgGetProcAddress("wglJoinSwapGroupNV");
	wglBindSwapBarrierNV = (PFNWGLBINDSWAPBARRIERNVPROC) glgGetProcAddress("wglBindSwapBarrierNV");
	wglQuerySwapGroupNV = (PFNWGLQUERYSWAPGROUPNVPROC) glgGetProcAddress("wglQuerySwapGroupNV");
	wglQueryMaxSwapGroupsNV = (PFNWGLQUERYMAXSWAPGROUPSNVPROC) glgGetProcAddress("wglQueryMaxSwapGroupsNV");
	wglQueryFrameCountNV = (PFNWGLQUERYFRAMECOUNTNVPROC) glgGetProcAddress("wglQueryFrameCountNV");
	wglResetFrameCountNV = (PFNWGLRESETFRAMECOUNTNVPROC) glgGetProcAddress("wglResetFrameCountNV");

	// WGL_NV_gpu_affinity
	wglEnumGpusNV = (PFNWGLENUMGPUSNVPROC) glgGetProcAddress("wglEnumGpusNV");
	wglEnumGpuDevicesNV = (PFNWGLENUMGPUDEVICESNVPROC) glgGetProcAddress("wglEnumGpuDevicesNV");
	wglCreateAffinityDCNV = (PFNWGLCREATEAFFINITYDCNVPROC) glgGetProcAddress("wglCreateAffinityDCNV");
	wglEnumGpusFromAffinityDCNV = (PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) glgGetProcAddress("wglEnumGpusFromAffinityDCNV");
	wglDeleteDCNV = (PFNWGLDELETEDCNVPROC) glgGetProcAddress("wglDeleteDCNV");

	// WGL_AMD_gpu_association
	wglGetGPUIDsAMD = (PFNWGLGETGPUIDSAMDPROC) glgGetProcAddress("wglGetGPUIDsAMD");
	wglGetGPUInfoAMD = (PFNWGLGETGPUINFOAMDPROC) glgGetProcAddress("wglGetGPUInfoAMD");
	wglGetContextGPUIDAMD = (PFNWGLGETCONTEXTGPUIDAMDPROC) glgGetProcAddress("wglGetContextGPUIDAMD");
	wglCreateAssociatedContextAMD = (PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) glgGetProcAddress("wglCreateAssociatedContextAMD");
	wglCreateAssociatedContextAttribsAMD = (PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) glgGetProcAddress("wglCreateAssociatedContextAttribsAMD");
	wglDeleteAssociatedContextAMD = (PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) glgGetProcAddress("wglDeleteAssociatedContextAMD");
	wglMakeAssociatedContextCurrentAMD = (PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) glgGetProcAddress("wglMakeAssociatedContextCurrentAMD");
	wglGetCurrentAssociatedContextAMD = (PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) glgGetProcAddress("wglGetCurrentAssociatedContextAMD");
	wglBlitContextFramebufferAMD = (PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) glgGetProcAddress("wglBlitContextFramebufferAMD");

	return true;
}
